Commit Graph

483 Commits

Author SHA1 Message Date
Eric Reed
1f31c8dbfc Add overload for existing plug-in support 2014-01-26 09:32:38 -05:00
Eric Reed
19e73fc7e6 Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser 2014-01-25 16:12:51 -05:00
Eric Reed
b78cdae321 Add version and platform to stats and don't hit server on every reg check 2014-01-25 16:11:09 -05:00
Luke Pulverenti
ac8ffb8db0 Added IAppHost.Name 2014-01-25 16:07:19 -05:00
Luke Pulverenti
a9f2a72d0b #680 - Support new episode file sorting 2014-01-19 01:36:21 -05:00
Luke Pulverenti
c8a106f485 move media encoder to server project 2014-01-12 01:31:21 -05:00
Luke Pulverenti
ec4000404d rework text subtitles 2014-01-10 08:52:01 -05:00
Luke Pulverenti
247a40fa61 add console logging during startup 2014-01-08 23:44:51 -05:00
Luke Pulverenti
b9d17c9bc7 add more methods to file system interface 2014-01-01 13:26:31 -05:00
Luke Pulverenti
3488cfecbd make lazy loaded paths more nimble 2013-12-29 09:12:29 -05:00
Luke Pulverenti
74f0d8bdbe minor dashboard cleanup 2013-12-25 22:44:26 -05:00
Luke Pulverenti
cd859ac2e6 added IHasImages and IHasUserData 2013-12-19 16:51:32 -05:00
Luke Pulverenti
cb9b570a2a live tv updates 2013-12-16 13:44:03 -05:00
Luke Pulverenti
d00178d8f0 support progress bar while splash window is up 2013-12-13 10:48:35 -05:00
Luke Pulverenti
9ecb85d066 added mono release configuration 2013-12-11 14:54:33 -05:00
Luke Pulverenti
f32212d160 update to service stack v4 2013-12-07 10:52:38 -05:00
Luke Pulverenti
55a776427b Removed unused properties from BaseItem. 2013-12-05 11:50:21 -05:00
Luke Pulverenti
4e79eaf65e add ApplicationPath to app paths interface to hide implementation 2013-12-04 09:52:38 -05:00
Luke Pulverenti
58f1a314b5 update to service stack 3.0.70.0 2013-11-30 13:32:39 -05:00
Luke Pulverenti
0bdc8a49d5 switch from httpclient to plain httpwebrequest 2013-11-30 01:07:25 -05:00
Luke Pulverenti
235b838fbe support deleting and canceling live tv recordings and timers 2013-11-29 11:58:24 -05:00
Luke Pulverenti
4786ad704a added ChannelLayout 2013-11-12 11:08:23 -05:00
Eric Reed
764e2625bf Implement plugin update identification by guid 2013-11-04 13:16:47 -05:00
Luke Pulverenti
6c8d919298 replace file system calls with IFileSystem when needed 2013-10-31 10:03:23 -04:00
Luke Pulverenti
05378c82cb fixes #582 - support tbn image files. 2013-10-13 01:56:44 -04:00
Luke Pulverenti
65f78ea5ad added CanSelfRestart 2013-10-07 10:38:31 -04:00
Luke Pulverenti
478be44dd6 create platform-specific network manager implementation 2013-10-05 13:13:32 -04:00
Luke Pulverenti
16fd474ad3 safer hls kill 2013-10-03 10:14:40 -04:00
Luke Pulverenti
eb72c2db51 updated nuget 2013-10-02 21:22:50 -04:00
Luke Pulverenti
76faf89aca handle type creation errors 2013-10-02 12:20:11 -04:00
Luke Pulverenti
3d40c5ba36 fixed xml providers running over and over 2013-10-01 14:24:27 -04:00
Luke Pulverenti
f4f91a8316 auto update fixes 2013-09-30 11:04:38 -04:00
Luke Pulverenti
3733ebd21e updated nuget 2013-09-29 21:29:38 -04:00
Luke Pulverenti
0ab379e271 adding mono solution 2013-09-24 17:06:21 -04:00
Luke Pulverenti
51b01d0f6d updated nuget 2013-09-23 14:53:06 -04:00
Luke Pulverenti
1c7c71075a pass current server version into installation manager to get update list 2013-09-22 14:21:55 -04:00
Luke Pulverenti
6146b57e7c update to servicestack 3.9.62 2013-09-22 12:49:55 -04:00
Luke Pulverenti
f3ce127a62 starting point towards running as a service 2013-09-20 13:32:10 -04:00
Luke Pulverenti
755d98edc0 improved messages with startup failures 2013-09-20 11:37:05 -04:00
Luke Pulverenti
b7a8b92c00 reduce system info refreshing from dashboard 2013-09-19 20:53:18 -04:00
Luke Pulverenti
60780399c5 allow request header overrides 2013-09-17 22:43:34 -04:00
Luke Pulverenti
37f0e23bf4 fixes #538 - Support additional artist splitting 2013-09-17 10:32:31 -04:00
Luke Pulverenti
ebec1e159c update default theme endpoints 2013-09-15 13:34:37 -04:00
Luke Pulverenti
11de8dde82 update to servicestack 3.9.59 2013-09-13 21:03:55 -04:00
Luke Pulverenti
0d59941539 restored network browser 2013-09-06 16:25:03 -04:00
Luke Pulverenti
98e7eeeff9 reduce byte conversions with alchemy web socket 2013-09-05 17:34:46 -04:00
Luke Pulverenti
7b6bf545da removed network option from directory picker due to unreliability 2013-09-05 10:42:17 -04:00
Mark Linton
64f06c2a1b One last mime type 2013-08-31 11:20:10 -07:00
Mark Linton
bceac2ff26 Add document mime types. 2013-08-31 11:04:06 -07:00
Luke Pulverenti
c59e49a8ed revert single/multi transition. too risky for now. 2013-08-18 11:23:28 -04:00
Luke Pulverenti
a3aa4e2741 update to servicestack 3.9.58 2013-08-16 16:23:44 -04:00
Luke Pulverenti
1df5839eb0 factor mixed folder value into item id 2013-08-16 16:13:45 -04:00
Luke Pulverenti
a78ed5c61f cleanup method signatures 2013-08-16 14:59:37 -04:00
Luke Pulverenti
e0c387446b reworked iso manager 2013-08-09 21:16:31 -04:00
Luke Pulverenti
a3f7ebe702 3.0.4967.25605 2013-08-07 15:15:55 -04:00
Luke Pulverenti
a2190765c8 update to servicestack 3.9.56 2013-07-22 10:58:38 -04:00
Luke Pulverenti
7e5bdc837a added GetTempFileResponse 2013-07-20 17:36:59 -04:00
Luke Pulverenti
bba45755f3 update to servicestack 3.9.55 2013-07-17 16:36:38 -04:00
Luke Pulverenti
27c644e6c8 #236 - Subtitle charset 2013-07-16 14:18:49 -04:00
Luke Pulverenti
c1ad234b79 Added album soundtrack links 2013-07-16 12:03:28 -04:00
Luke Pulverenti
48265fefa4 update nuget 2013-07-08 22:38:18 -04:00
Luke Pulverenti
53450bd514 added a notifications service 2013-07-06 17:23:32 -04:00
Luke Pulverenti
a5f97dcaa8 move installation manager down to common 2013-06-30 22:27:50 -04:00
Luke Pulverenti
8a1b12b7d8 tightened up image saving to reduce knowledge of file names 2013-06-28 16:25:58 -04:00
Luke Pulverenti
1e49857765 use static package method when checking for plugin updates from dashboard page 2013-06-28 09:26:27 -04:00
Eric Reed
55bbfc2dcc Change update checks to use static file 2013-06-27 15:08:57 -04:00
Luke Pulverenti
36d4e15860 fixes #364 - Image Extraction for 3D Videos 2013-06-27 11:59:32 -04:00
Luke Pulverenti
dbfe22412a update to servicestack 3.9.54 2013-06-18 05:48:49 -04:00
Luke Pulverenti
c174859b52 fixed namespace casing 2013-06-10 12:57:30 -04:00
Luke Pulverenti
01def9a1e0 fixed wrong project type guid 2013-06-09 23:06:06 -04:00
Luke Pulverenti
847d6f6ba3 removed unused methods 2013-06-08 13:03:21 -04:00
Luke Pulverenti
02fedead11 re-factored some file system access 2013-06-03 22:02:49 -04:00
Luke Pulverenti
5fc327c232 fixes #322 - Sleep and Network Shares 2013-06-02 09:43:53 -04:00
Luke Pulverenti
085e597a2e improve accuracy of local ip address discovery 2013-05-27 14:34:03 -04:00
Luke Pulverenti
390f165332 #280 - avoid an extra request to last fm by taking data from the MusicArtist entity 2013-05-27 11:02:16 -04:00
Luke Pulverenti
3a587a5d08 updated browse to command 2013-05-25 20:53:51 -04:00
Luke Pulverenti
a3ecf6c2b7 localize library changed messages per user 2013-05-21 23:42:25 -04:00
Luke Pulverenti
c11c8bfdb4 re-enable http compression for all providers except for last fm 2013-05-20 14:03:09 -04:00
Luke Pulverenti
f5163bd8f1 update to servicestack 3.9.46 2013-05-19 11:55:51 -04:00
Luke Pulverenti
58cc2248b9 update to servicestack 3.9.45 2013-05-15 10:21:37 -04:00
Luke Pulverenti
35a7986b3f added model classes for remote control 2013-05-09 18:43:11 -04:00
Luke Pulverenti
2818d8ccd2 updated servicestack to 3.9.44 2013-05-07 09:06:01 -04:00
Luke Pulverenti
c568f352eb replaced http client cache with longer lived cache 2013-05-06 15:31:57 -04:00
Luke Pulverenti
87598ca6d0 add customizable accept header to http client interface 2013-05-04 00:07:27 -04:00
Luke Pulverenti
b11d06f36f more work on streaming remotely 2013-05-01 22:44:52 -04:00
Luke Pulverenti
e9cfa6cd26 add remote streaming capabilities 2013-05-01 16:07:20 -04:00
Luke Pulverenti
40c2b73d63 fixed subtitle offsets 2013-04-27 09:10:24 -04:00
Luke Pulverenti
7839a90c1a added subtitle seek on extract 2013-04-23 20:25:49 -04:00
Luke Pulverenti
58c77529d2 removed superfluous GetMemoryStream 2013-04-20 18:19:55 -04:00
Luke Pulverenti
785deff188 removed excess hashing in providers and made user data key-based 2013-04-13 14:02:30 -04:00
Luke Pulverenti
5e1f4c01b8 added back IsFirstRun 2013-04-10 21:52:15 -04:00
Luke Pulverenti
7806ccd42f resharper suggestions in common project 2013-04-10 11:38:23 -04:00
Luke Pulverenti
f5620c81be removed unneeded startup processes 2013-04-07 18:09:48 -04:00
Luke Pulverenti
cb39f8e7b5 extracted a media encoding interface to keep ffmpeg out of nuget packages 2013-04-07 16:55:05 -04:00
Luke Pulverenti
e8d03d49f2 update to servicestack 3.9.43 2013-04-04 01:06:46 -04:00
Luke Pulverenti
5fb369f3e6 add optional package filter and remove IUIPlugin interface 2013-04-03 14:43:49 -04:00
Luke Pulverenti
fa884f3fea #62 - File locking problem in cache 2013-04-02 22:59:27 -04:00
Luke Pulverenti
11d282388a better dashboard background and text adjustments 2013-04-01 14:55:56 -04:00
Luke Pulverenti
9f06eb781f fixes #97 and creates a library dictionary cache to avoid FindById recursion 2013-03-31 13:39:28 -04:00
Luke Pulverenti
31bb5b5cb3 removed udp server layer 2013-03-27 18:13:46 -04:00
Luke Pulverenti
62521eabc2 update to latest js api client 2013-03-26 00:33:47 -04:00
Luke Pulverenti
a6c9fdd0f2 Moved some web socket classes to the model 2013-03-25 23:01:47 -04:00
Luke Pulverenti
e2dcddc5ac made compression and caching available to plugin api endpoints 2013-03-23 22:45:00 -04:00
LukePulverenti
bae89ee824 fix duplicate connections on the dashboard 2013-03-16 12:41:49 -04:00
LukePulverenti
fe1834e6be Add resume capability to GetTempFile 2013-03-14 15:52:53 -04:00
Eric Reed
a7f06c84b1 Hook new registration load to changing supporter keys 2013-03-14 12:40:36 -04:00
Eric Reed
d3b37a73cc Create IRequiresRegistration. First part of #31 2013-03-14 12:32:16 -04:00
LukePulverenti
0cc0fbbe43 #22 - Need to strip html tags from overviews 2013-03-12 18:49:45 -04:00
LukePulverenti
ed3ffc6c27 fixed app update notifications 2013-03-11 15:36:32 -04:00
LukePulverenti
f9e760cd90 removed object disposed catch 2013-03-11 15:27:25 -04:00
LukePulverenti
fe91772f18 fixed semaphore dispose issue 2013-03-11 12:54:52 -04:00
LukePulverenti
332f635939 Added IHttpResultFactory 2013-03-08 12:25:25 -05:00
LukePulverenti
4f67fc4aef removed base kernel and ikernel 2013-03-07 00:34:00 -05:00
LukePulverenti
bf95cfe2e5 removed the IsCorePlugin property 2013-03-04 23:29:43 -05:00
LukePulverenti
16b36d4d89 fixed multiple log files 2013-03-04 11:31:33 -05:00
LukePulverenti
a11e00b8d5 Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Conflicts:
	MediaBrowser.Common/Kernel/ResourcePool.cs
2013-03-04 00:44:04 -05:00
LukePulverenti
2ca4b7d03a Created IConfigurationManager 2013-03-04 00:43:06 -05:00
Eric Reed
d7cdf06326 First cut at LastfmArtistProvider 2013-03-03 20:46:06 -05:00
LukePulverenti
7b0b5a3538 created an init method on base app host 2013-03-03 02:27:40 -05:00
LukePulverenti
627b8370a8 made IHttpClient a little more flexible, allow Semaphore to be optional 2013-03-03 00:25:42 -05:00
LukePulverenti
f26a3e3c61 created entry point classes for the startup wizard and new item notifications 2013-03-03 00:20:14 -05:00
LukePulverenti
0ea90ef7c6 added IServerEntryPoint to replace plugin.initialize 2013-03-02 21:47:04 -05:00
Eric Reed
60662a0f16 Server app update on launch 2013-03-02 14:48:25 -05:00
Eric Reed
3abf1f7ed2 Add system path to IApplicationPaths/BaseApplicationPaths 2013-03-02 14:08:36 -05:00
Eric Reed
5d397aa363 Create constants for package names 2013-03-02 13:54:41 -05:00
LukePulverenti
e8f5fade43 Created an ItemsByName query dto 2013-03-02 02:16:52 -05:00
LukePulverenti
7bca933af0 added the beginning of a service stack abstraction 2013-03-01 21:44:46 -05:00
LukePulverenti
56a7fd6f23 Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser 2013-03-01 16:22:50 -05:00
LukePulverenti
fe3323a492 fixes around http response caching, updated the mb icon in the dashboard, and isolated web socket events 2013-03-01 16:22:34 -05:00
Eric Reed
e3b42ad59e Remove archive extraction from PackageManager
It is no longer needed as the installer does this
2013-03-01 15:42:44 -05:00
Eric Reed
3657ef952d First step of actual update
We will now need a bootstrapper to complete the update on startup
2013-02-28 16:04:11 -05:00
Eric Reed
989bb48596 Start on new update routines 2013-02-28 14:29:17 -05:00
LukePulverenti
94b6168e27 Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser 2013-02-27 16:07:59 -05:00
LukePulverenti
4d71fc1d42 remvoed CO uninstall project 2013-02-27 16:07:51 -05:00
ScottIsAFool
acfca8e65a Dlls only copied to nuget folder when in Release configuration 2013-02-27 20:47:34 +00:00
LukePulverenti
1c9eb1911a fix media streaming in apiclient 2013-02-27 13:25:00 -05:00
LukePulverenti
3d9e79c46f moved server init down to base app host 2013-02-27 12:28:15 -05:00
LukePulverenti
6d5d291762 Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Conflicts:
	MediaBrowser.Common.Implementations/BaseApplicationHost.cs
	MediaBrowser.ServerApplication/ApplicationHost.cs
2013-02-27 11:57:14 -05:00
LukePulverenti
ca7ee68473 fixed the plugin catalog not loading 2013-02-27 11:46:48 -05:00
Eric Reed
e15ff541c6 Move actual installation to PackageManager 2013-02-27 08:34:24 -05:00
Eric Reed
340280edf2 Partial implementation of PackageManager 2013-02-27 07:49:55 -05:00
LukePulverenti
ff6325efc5 video streaming 2013-02-26 23:44:41 -05:00
Eric Reed
4b2cf29fe1 Move SecurityManager to BaseKernel/IKernel 2013-02-26 17:19:45 -05:00
Eric Reed
1925288a86 Extract ISecurityManager interface 2013-02-26 17:14:08 -05:00
Eric Reed
c555920fe7 Move RemovePlugin to BaseKernel/IKernel 2013-02-26 16:53:45 -05:00
Eric Reed
4c1c717824 Move ResourcePools to BaseKernel/IKernel 2013-02-26 16:48:43 -05:00
Eric Reed
8956f6ff4a Move ResourcePool to common 2013-02-26 16:40:18 -05:00
Eric Reed
0c8d924bfc Extract IInstallationManager interface
first step to moving update logic to common
2013-02-26 15:21:55 -05:00
LukePulverenti
cd96c7dab2 updated nuget packages 2013-02-26 12:51:32 -05:00
LukePulverenti
0f1ec5b586 fix log window setting 2013-02-26 12:21:18 -05:00
LukePulverenti
6efd22a3d2 added a shutdown api method, font size fix and other decouplings 2013-02-26 11:10:55 -05:00
LukePulverenti
2d06095447 plugin security fixes and other abstractions 2013-02-25 22:43:04 -05:00
LukePulverenti
364fbb9e0c fixed plugin assembly downloads as well as debug/release detection with nuget assemblies 2013-02-25 00:17:59 -05:00
LukePulverenti
2d342c02ef convert playback checkins to rest 2013-02-24 21:41:51 -05:00
LukePulverenti
28ccfb1bd1 extracted httpclient dependancy 2013-02-24 19:13:45 -05:00
LukePulverenti
8ce3e74e81 More DI 2013-02-24 16:53:54 -05:00
LukePulverenti
6c86721f6d placeholder for plugin security fix 2013-02-23 17:44:42 -05:00
LukePulverenti
2e4db75540 extracted http server, web socket server and udp server dependancies 2013-02-23 17:31:51 -05:00
LukePulverenti
465f0cc1e2 moved some network code to the networking assembly 2013-02-23 12:54:51 -05:00
LukePulverenti
b8d5c71842 type discovery without attributes 2013-02-23 02:57:11 -05:00
LukePulverenti
c165f37bb9 more dependancy injection. still just beginning 2013-02-22 22:49:00 -05:00
LukePulverenti
6a5bf9cc78 extracted more interfaces 2013-02-22 19:44:20 -05:00
LukePulverenti
84507736a0 Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Conflicts:
	MediaBrowser.ServerApplication/CorePlugins/MediaBrowser.Api.dll
	MediaBrowser.ServerApplication/CorePlugins/MediaBrowser.ApiInteraction.Javascript.dll
	MediaBrowser.ServerApplication/CorePlugins/MediaBrowser.Server.Sqlite.dll
	MediaBrowser.ServerApplication/CorePlugins/MediaBrowser.Server.WorldWeatherOnline.dll
	MediaBrowser.ServerApplication/CorePlugins/MediaBrowser.WebDashboard.dll
2013-02-22 19:26:38 -05:00
LukePulverenti
a2d215b6ae added simple injector for dependancy management 2013-02-22 19:24:50 -05:00
LukePulverenti
107c241598 Added IDisposable to IWebSocketListener 2013-02-22 15:52:59 -05:00
ScottIsAFool
83b7b18614 Set the Common, Controller, Model, UI and UI.Controls to go into one folder, set nuspec files up for the packages to make it easier to create nuget packages. 2013-02-22 19:22:39 +00:00
LukePulverenti
8b3e8ad478 created IWebSocketListener 2013-02-22 10:16:48 -05:00
LukePulverenti
fab627c845 added a master version file 2013-02-22 02:17:50 -05:00
LukePulverenti
746c5d2fa7 moved Plugins to separate repo 2013-02-22 01:28:57 -05:00
LukePulverenti
868a7ce9c8 isolated clickonce dependancies 2013-02-21 23:23:06 -05:00
LukePulverenti
fdafa59683 Removed System.Windows.Forms dependancy from Common. Almost done removing NLog dependancy. 2013-02-21 20:26:35 -05:00
LukePulverenti
931c0ea455 more dependancy injection 2013-02-21 16:40:04 -05:00
LukePulverenti
76f067f867 extracted more logging dependancies 2013-02-21 16:06:23 -05:00
LukePulverenti
ab1065a567 removed static logger 2013-02-21 15:26:55 -05:00
LukePulverenti
5e08d95b92 fixed x64 2013-02-21 12:22:41 -05:00
LukePulverenti
815240f920 fix query string parsing issue 2013-02-21 02:00:04 -05:00
LukePulverenti
ee9d481662 isolated bdinfo dependancy 2013-02-21 01:38:23 -05:00
LukePulverenti
ae4ffa75be isolated weather and moved drawing classes up to the controller project 2013-02-21 01:02:10 -05:00
LukePulverenti
acf5b0b6ed isolated DotNetZip dependancy 2013-02-21 00:00:56 -05:00
LukePulverenti
a5f9dc1bfc isolated sqlite dependancy 2013-02-20 23:37:50 -05:00
LukePulverenti
509156cbc3 remove core plugin output from source control 2013-02-20 21:40:36 -05:00
LukePulverenti
767cdc1f6f Pushing missing changes 2013-02-20 20:33:05 -05:00
ebr11 Eric Reed spam
7ed11c0bba Merge with default 2012-09-20 13:54:37 -04:00
ebr11 Eric Reed spam
da618f13e2 Fix up directory watchers 2012-09-20 13:53:10 -04:00
ebr11 Eric Reed spam
e2ae376eef Merge with default 2012-09-20 11:28:02 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
119dfc3ac7 Adding the UI to the same repo. Made some default theme progress 2012-09-20 11:25:22 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
d8c01ded6e made some improvements to the base http handler 2012-09-19 12:51:37 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
19e202d5e1 Added http server support for etags 2012-09-18 18:50:26 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
8b7effd6ff Moved discovery of loggers and weather providers to MEF. Also added support for third-party image processors, also discovered through MEF. 2012-09-18 15:33:57 -04:00
ebr11 Eric Reed spam
0f078d8098 Move NeedsRefresh to async task and fix problem finding episode metadata 2012-09-18 15:18:15 -04:00
ebr11 Eric Reed spam
e5b5861abf Need to be more intelligent finding paths we're already watching 2012-09-18 07:22:49 -04:00
ebr11 Eric Reed spam
9fbd88a713 fix up some merge errors 2012-09-17 16:53:39 -04:00
ebr11 Eric Reed spam
f385fe2f20 Merge with default 2012-09-17 16:24:01 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
9f1005d679 Added Reload Beginning/Completed events 2012-09-17 16:21:46 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
fe427bc7f4 Removed progress value from startup 2012-09-17 14:47:51 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
fb88e4d5fc Added the ability to reload the server and created a Plugins solution 2012-09-17 14:09:35 -04:00
ebr11 Eric Reed spam
17106ea5c7 Initial commit changing to on-demand child loading and validations 2012-09-17 11:12:43 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
f1770605ea Added new icons and fixed some splash screen issues 2012-09-16 20:09:12 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
5a89c00ac8 Remove spaces from default plugin config filename 2012-09-16 19:12:31 -04:00
LukePulverenti Luke Pulverenti luke pulverenti
ffbac0e3d8 Eliminated some list recursions 2012-09-15 16:32:41 -04:00