Commit Graph

328 Commits

Author SHA1 Message Date
Bryan Ashby ad4eea6ba7 * SSH is now functional for 'ssh', PuTTY, SyncTerm, EtherTerm, and hopefully most others
* Explicit detect of syncterm as ANSI
* Add serverType (TELNET, SSH) MCI: %ST
2015-10-21 22:51:35 -06:00
Bryan Ashby 6a2d283fad * WIP on SSH2 access: Linux ssh can now connect, browse, etc.
* Still issues with other terminals such as EtherTERM which just hangs after auth. Does not seem to send the 'shell' event
* Fix typo in msg_list module
2015-10-20 22:37:39 -06:00
Bryan Ashby d86d3e0119 * Separate login logic vs display
* Work on SSH a bit -- major WIP, not working!
2015-10-19 17:21:47 -06:00
Bryan Ashby 549fba6b34 * Code cleanup + comments
* Fix message area access in NUA path
2015-10-18 21:24:13 -06:00
Bryan Ashby e36507fec1 * WIP user list - mostly complete
* Some code cleanup / renaming
2015-10-18 11:48:08 -06:00
Bryan Ashby b2509e9208 * User list skeleton 2015-10-17 23:32:35 -06:00
Bryan Ashby 52dee0a401 * Filter Private from area lists/etc.
* Clean up CPU string for MCI display
2015-10-17 21:39:54 -06:00
Bryan Ashby 65d7186a86 * Add new last_callers.js 2015-10-17 20:58:07 -06:00
Bryan Ashby 9f11605c9b * Work on menus 2015-10-17 20:34:39 -06:00
Bryan Ashby 1c1f4394ca * System stats
* Last callers rewritten using format and VM
* Some minor MCI stuff
2015-10-17 20:03:51 -06:00
Bryan Ashby d02d9e4a7c * TOONODE support when already logged in
* Work on new user / NUA flow
* Various cleanup
2015-10-15 23:41:24 -06:00
Bryan Ashby a5c2e6f50b * Work on area change + theme
* Work on msg menu + theme
2015-10-14 23:09:10 -06:00
Bryan Ashby 171ee75043 * pipeWrite() can now parse Renegade via spec='renegade'
* WIP on user config
2015-10-13 00:35:37 -06:00
Bryan Ashby ea8061ae85 * Skeleton for user configuration 2015-10-11 23:26:27 -06:00
Bryan Ashby 15d844262d * Minor tweaks to message list 2015-10-11 20:52:13 -06:00
Bryan Ashby 6e0a4e84af * Message list updated to be functional with new MCI/etc. (Still WIP, but working good) 2015-10-11 16:05:45 -06:00
Bryan Ashby 3038213c09 * More progress on theming esp. in relation to .config menu module sections 2015-10-09 23:35:40 -06:00
Bryan Ashby a6cd6bd3b9 * Use pre-release of string-format with Python like widths/etc.
* Very minor updates to message list
2015-10-09 20:46:28 -06:00
Bryan Ashby 0fd9df3821 * Cleanup on msg view config 2015-10-09 19:27:43 -06:00
Bryan Ashby a3ba9b0252 * More work on theming 2015-10-06 21:21:13 -06:00
Bryan Ashby 73952a2c37 * Minor work on themes + FSE 2015-10-06 15:22:49 -06:00
Bryan Ashby 0436dc2c3a * More on new theme 2015-10-04 22:26:30 -06:00
Bryan Ashby 60758e0f34 * WIP on theme by Luciano Ayres
* %TL for area name vs MA which is to become "default" message area
2015-10-04 22:04:56 -06:00
Bryan Ashby a3e37293f4 * WIP on customization of .config blocks
* getThemeArt() updated with new fallback mechanism (theme -> default theme -> art generic)
2015-09-27 22:05:40 -06:00
Bryan Ashby 05812f57f0 * Trailing LF handling is now 'trailingLF' option, with 'default', 'yes', 'no', etc.
* Initial checking of WIP Mystery Skulls theme by Luciano Ayres of blocktronics
* Fix random theme selection
* WIP on theme customization apply: Needs to be much more flexible than current
* MenuModule will use .next > .fallback > default fallback
2015-09-27 15:35:24 -06:00
Bryan Ashby 68b8af7975 * Fix version to represent alpha
* Some fixes to message areas
* New NU-MAYA prompt
2015-09-26 00:20:17 -06:00
Bryan Ashby df477667b0 * client.runtime.* renamed to client.session.*
* some work on area names - need to fix login issue & rest shoudl work
2015-09-25 23:10:18 -06:00
Bryan Ashby 1082b6e39c * Minor fix + notes 2015-09-23 23:55:13 -06:00
Bryan Ashby 903db84f23 * New fallback with default vs explicit working
* New @systemMethod:fallbackMenu working
* Work on NUA flow: added preamble and some work on FSE related stuff
2015-09-23 23:41:06 -06:00
Bryan Ashby 1175278779 * Some work on NUA
* Placeholder for sysop feedback after NUA step
2015-09-22 23:13:06 -06:00
Bryan Ashby 6c38ff54d5 * WIP replacement NUA system 2015-09-22 21:31:56 -06:00
Bryan Ashby b1947c8010 * Create new NUA. WIP 2015-09-20 20:23:55 -06:00
Bryan Ashby b2592d0e71 * Fixes to actionKeys with new focus changes
* Various fixes, minor changes
2015-09-20 19:10:09 -06:00
Bryan Ashby b15d9a0bf8 * Fix word wrap bug introduced prior -- use 'expand' not 'expandTabs'
* Notes on better access of views by ID
* Work on apply process a bit
* Replies can now be saved
2015-09-20 01:29:07 -06:00
Bryan Ashby a6d00b05a7 * Artwork for NU-MAYA help, updated quote builder, etc.
* Fix some typos
* Fix message getQuoteLines()
* Quote builder fully functional
* MLTEV emits more information in position events
* Action keys can how handle plain characters that don't have full key object, e.g. "?"
* Hot keys for a lot of stuff
* WIP work on focus issue in VC.
2015-09-19 22:55:09 -06:00
Bryan Ashby 899cb658cc * Clean up some "JSON" nameing in config to reflect generic config or HJSON
* Found why "r" wasn't working for reply in menu.hjson... now it crashes though because actionKeys extraArgs broken it seems
2015-09-17 23:17:15 -06:00
Bryan Ashby 1b46506cf8 * New concept of saved states. Modules will be called before enter to restore a saved state (if applicable) and before leave to save one. 2015-09-17 23:11:21 -06:00
Bryan Ashby 9865da34cc * Quote builder very functional, some bugs
* Work on fallback system (implicit); Added some notes... need saveState/restoreState type functionality as extraArgs may not be final args!
2015-09-17 22:53:19 -06:00
Bryan Ashby 6970e6e2ab * Lots of good progress with quote builder... still WIP, but nearly there 2015-09-16 22:31:09 -06:00
Bryan Ashby 20fb54422a * Quote builder even more functional :) 2015-09-15 22:44:31 -06:00
Bryan Ashby cee7983c5a * Progress on FSE quote builder... WIP! 2015-09-14 22:40:00 -06:00
Bryan Ashby 150de3953e * Work on quote builder / reply 2015-09-13 21:15:55 -06:00
Bryan Ashby 88d725f585 * Minor work on reply area post 2015-09-12 19:18:08 -06:00
Bryan Ashby 08beee4274 * Start work on message area replies 2015-09-12 18:18:46 -06:00
Bryan Ashby 05f666cf29 * Minor JSON -> HJSON config cleanup
* Some logging in telnet server vs console.log()
* Calculate FSE footer position vs hard code it
2015-09-12 17:17:00 -06:00
Bryan Ashby 7b7cf38113 * Cleanup and minor work on FSE post 2015-09-10 23:09:45 -06:00
Bryan Ashby 6b03b5357f * predefined_mci.js: General method for resolving MCI codes -> string
* Changed MCI resolution to use object to function mapping so entries not yet available would not be executed
* enigmaToAnsi() can now (optionally) resolve MCI codes
* pipeWrite() resolves MCI codes
2015-09-10 21:01:04 -06:00
Bryan Ashby 6848df49d1 * Very minor JSON to HJSON testing 2015-09-09 21:55:16 -06:00
Bryan Ashby 481c3171f4 * JSONCache -> ConfigCache
* ConfigCache used for theme.hjson
* Reformatted theme.hjson JSON to HJSON
* Specific form ID used when applying themes if available, else generic match used
* Pass extraArgs when processing 'next'
2015-09-09 21:31:04 -06:00
Bryan Ashby cc6d214882 * More work on 'action' vs 'next' -- mostly complete for now 2015-09-08 22:31:38 -06:00
Bryan Ashby ca4b99a83e * Convert all JSON configurations (*.json) to HJSON (*.hjson) which is much more flexible for a human readable and editable configuration format
* WIP "next" vs "action" changes
* options.cls is now defaulted in config.js/config.hjson (default = true)
* Notes/etc.
2015-09-08 22:08:45 -06:00
Bryan Ashby 2edc63632b * Mostly work on building demo / NU-MAYA theme for testing / working out details / etc. 2015-09-07 21:18:09 -06:00
Bryan Ashby 6517f50e0c * Message view prev/next
* Message view up/down movement
* Some new experimental MCI codes
* Put cursor @ top of document in MLTEV preview mode
* Fix fse finishedLoading()
* Menus can have names, clients have current status
2015-09-07 00:12:01 -06:00
Bryan Ashby 1f3948d84c * Menus can specify status
* WIP changes of message loading in viewer - can now do next... WIP!!!
2015-09-06 15:58:58 -06:00
Bryan Ashby cc68106473 * Message number/total 2015-09-04 16:35:08 -06:00
Bryan Ashby 80460ea050 * Code cleanup; minor 2015-09-04 16:17:41 -06:00
Bryan Ashby f587b228bc * Fix separation of editorMode vs footerMode 2015-09-04 14:28:05 -06:00
Bryan Ashby ddc806bd39 * Varous fixes for FSE. ...WIP on separation of editorMode vs editor/menu/etc. focus 2015-09-04 00:02:28 -06:00
Bryan Ashby 42ddabd875 * Minor work on post view FSE / related 2015-09-02 23:11:17 -06:00
Bryan Ashby e0f267c9a5 * Updates & notes to fse for view mode... WIP! 2015-09-01 22:20:29 -06:00
Bryan Ashby 02e90d7ca3 * Lots of work on message loading from message list and extraArgs 2015-08-31 23:18:46 -06:00
Bryan Ashby e852695354 * Fix bug in VerticalMenuView when pressing up with low number of items
* Minor work on message list
2015-08-30 21:42:24 -06:00
Bryan Ashby 87dcb1bdda * Small typo fix 2015-08-27 22:33:36 -06:00
Bryan Ashby 8dc06cb49d * Some progress on message list fetching / display... WIP! 2015-08-27 22:20:24 -06:00
Bryan Ashby ede00f8937 * Remove old dependency
* Add string-format dep.
* Convert various strUtil.format() -> String.prototype.format() based system
2015-08-27 16:14:56 -06:00
Bryan Ashby 140990811a * Start some work on message list fetching 2015-08-26 23:25:49 -06:00
Bryan Ashby 3be271aab5 * Not much ... few minor changes 2015-08-26 23:04:04 -06:00
Bryan Ashby 9442760679 * Start work on allowing pipe codes & custom drawing using items vs focusItems for menus. EXPERIMENTAL. 2015-08-25 23:17:09 -06:00
Bryan Ashby d69d00a14b * Cleanup related to message area IDs / database -> JSON format and names 2015-08-20 17:00:35 -06:00
Bryan Ashby 35de0a2487 * Initial work on moving to JSON configured Message Areas (vs ID's in SQLite). This will be applied to user groups, and other types as well such that JSON can simply be edited in config.json
* Hopefully better/proper merge of config.js + config.json => config
2015-08-20 16:35:04 -06:00
Bryan Ashby ec70cc8caa * Progress on FSE / Area Posting
* Proof of concept work on user validation in FSE
* Term now has pipeWrite()
2015-08-19 22:10:18 -06:00
Bryan Ashby ca26cca55b * Don't look for non-user (e.g. predefined) MCI codes in form/config lookup 2015-08-19 18:50:40 -06:00
Bryan Ashby 4cf10ba85c * Minor changes & cleanup 2015-08-19 16:05:35 -06:00
Bryan Ashby d3f82e38da Rely on pty.js, minor updates to area changing logic 2015-08-18 23:11:13 -06:00
Bryan Ashby c9a24b7ec8 * Minor code cleanup + fixes, area change/list semi functional 2015-08-18 22:45:47 -06:00
Bryan Ashby aaac4e884b * New string util method: format()
* Minor work on area list -- WIP!
2015-08-18 17:00:18 -06:00
Bryan Ashby aa820ac0b5 * New message_area.js for Message Area APIs, etc.
* msg_area_list.js module for listing/selecting message area (WIP; much to do)
2015-08-18 15:27:14 -06:00
Bryan Ashby 990dffe880 * Very minor 2015-08-17 21:45:11 -06:00
Bryan Ashby d491bd9582 * Load 'message_area_id' from user props 2015-08-16 21:37:16 -06:00
Bryan Ashby 7990202317 * Fix some extraArgs stuff
* Minor updates to FSE related modules -- WIP!
2015-08-16 13:35:34 -06:00
Bryan Ashby d9b39fcaa6 * Switching back to module system for FSE... broken now, but hopefully this model sticks 2015-08-14 14:49:06 -06:00
Bryan Ashby 6257208c5e * Progress on FSE class/integration
* Use "proxy" for submit
* More key support... probably just missed it from other box, will merge later
2015-08-13 22:30:55 -06:00
Bryan Ashby 6d49e5e55f * Pass 'key' object to actions & submit form events 2015-08-13 16:05:17 -06:00
Bryan Ashby 08bebb560d * Minor work on fse class. Experimental handling of submit/etc. directly 2015-08-12 22:08:33 -06:00
Bryan Ashby bfdc58b90c * Few updates to FSE class, some notes 2015-08-11 22:28:43 -06:00
Bryan Ashby 7526a8b2c8 * Minor 2015-08-11 21:42:55 -06:00
Bryan Ashby c26fb573a1 * Some new skeleton files for area messages + some conceptual thoughts 2015-08-11 21:36:08 -06:00
Bryan Ashby 901f83453c * Lots of experimental stuff with message area in relation of FSE. Have a fairly good idea now how this can work... a few missing pieces 2015-08-09 19:32:38 -06:00
Bryan Ashby dbb3e04166 + asset.getModuleAsset()
* Menus can specify built in menu modules: @systemModule:XXXXX
2015-08-08 15:52:47 -06:00
Bryan Ashby b8d4741c18 * Work with prompts. Prompts now handle special menu "submit" block without form IDs/etc. 2015-08-06 23:08:10 -06:00
Bryan Ashby 82f3bc7601 * Use lodash for Config.js / config.json merge 2015-08-05 22:22:17 -06:00
Bryan Ashby 8d1fac41a9 * User idle timeout
* Only allow one session per user at a time
* user 'timestamp' property -> 'account_created'
* Better User.getLegacySecurityLevel() using group membership
* Client connection management -> client_connections.js
* Minor changes & cleanup
2015-08-04 22:35:59 -06:00
Bryan Ashby 36a8d771e8 * Pause after tooManyArt 2015-08-03 23:21:23 -06:00
Bryan Ashby 608d4dc094 * DOOR.SYS support
* LORD now works via DOOR.SYS at least
* Abracadabra: nodeMax, tooManyArt support, etc.
* Abracadabra: Exit back to menu
* Some code cleanup
2015-08-03 23:11:17 -06:00
Bryan Ashby 144aa6b351 * More WIP on door support. Proof of concept mostly functional-ish for at least Pimpwars :) 2015-08-02 18:27:05 -06:00
Bryan Ashby 0aa726a02b * A little login structure (experimental) 2015-07-31 09:11:57 -06:00
Bryan Ashby a15067fc21 * Much better flow for mciReady in relation to pausing, etc. using callbacks 2015-07-29 22:09:51 -06:00
Bryan Ashby 44a0f87a24 + stats.js: public APIs for accessing various system stats. Probably needs a better name
* Fix pause placement. Wait for all views ready before placing cursor such that the prompt will display in the right spot
2015-07-28 22:31:28 -06:00
Bryan Ashby 4a342ba2fa * Functional last callers mod
* Notes
* Some cleanup
2015-07-27 22:10:20 -06:00
Bryan Ashby 99ea870ebc * @method for view properties. WIP... hacked in, needs cleaned up & DRY
* Messing around with different approaches to last callers...
2015-07-26 22:51:06 -06:00
Bryan Ashby 542327460b * Last callers module WIP 2015-07-26 00:20:07 -06:00
Bryan Ashby 35a99b7e3e * Fix short timeFormat
* Pause prompts now support MCI codes using View Controller
* View Controller 'noInput' option for read-only/viewable but no interaction
* Ability to omit final trailing CRLF's in ANSI's
* Move asset.displayArtAsset -> theme.displayThemedAsset
2015-07-25 16:10:12 -06:00
Bryan Ashby dd478ed6ba * displayArtAsset is now part of asset
* Work on generalizing some things so they can be used for pause/etc.
2015-07-24 18:33:59 -06:00
Bryan Ashby 8b5152d66f * WIP pause prompt
* prompt.json::prompts::pause is now a standard/required prompt
* CT for current time MCI
* Fix up config/theme defaults.dateTimeFormat -> dateFormat & timeFormat
2015-07-23 22:23:44 -06:00
Bryan Ashby 9120cc9e18 * Support pausing after art display 2015-07-22 23:08:08 -06:00
Bryan Ashby ff5d568259 * A few MCI codes
* Fix timer/flicker bug @ connect ANSI term size detection
2015-07-22 22:09:52 -06:00
Bryan Ashby 4288c5b2e9 * A few fixes to standard MCI codes
* Load user groups properly
* Configurable/themeable date time formats
2015-07-22 21:35:35 -06:00
Bryan Ashby 735b572f9f * MCI keys no longer consider view IDs as this implied order
* Converted all MCI keys in menu.json/etc., e.g. BN1ET2 -> BN1ET2
* Fix regression with prompt loading
* 'age' property -> 'birthdate'
* MaskEditView.getData() returns data with literals in place
* Other minor changes
2015-07-21 23:52:20 -06:00
Bryan Ashby 81e684cdcc * Work on Renegade style pipe codes
* Change age -> birthday
* Minor tweaks and tests
2015-07-20 22:56:48 -06:00
Bryan Ashby 89adc83fc6 * JSONCache for caching JSON data (vs reading + parsing every time)
* Minor changes
2015-07-19 21:49:48 -06:00
Bryan Ashby aebf494ae7 * MailPacket class: read() and write() with event emits
* FTNMailPacket WIP derived from MailPacket
2015-07-15 23:51:00 -06:00
Bryan Ashby 368f0d6467 * Minor updates to FSE related to getMessageData() 2015-07-13 14:58:45 -06:00
Bryan Ashby 316a9c8b7f * Fix issue with submit matching when argName used 2015-07-13 13:41:21 -06:00
Bryan Ashby 5907c1d024 * Very early work on FidoNet, Messages, etc. 2015-07-12 22:56:33 -06:00
Bryan Ashby ab12974430 * A bit of experimental work on Message obj 2015-07-12 00:32:31 -06:00
Bryan Ashby 1bb997133f * More WIP on FSE
* Fix issue with events captured in VC when setFocus() toggle
2015-07-11 20:12:07 -06:00
Bryan Ashby aab07bb330 * Fix crash with JuiceSSH
* Lots of WIP on FSE
* Various notes & fixes
2015-07-11 16:39:42 -06:00
Bryan Ashby 2391ce6bc9 * Some notes mostly 2015-07-10 15:24:30 -06:00
Bryan Ashby 0d2d2602cd * New concept of 'actionKeys' replacing broken 'submit' stuff -- WIP, currently broken but should be quick fix soon 2015-07-09 23:23:37 -06:00
Bryan Ashby 696e4157d9 * Nothing really 2015-07-09 17:06:09 -06:00
Bryan Ashby 52288a6162 * Re-attach events when switching between menu 2015-07-09 16:28:44 -06:00
Bryan Ashby eea09dd3b3 * Some more work on switching menus in FSE 2015-07-08 22:49:22 -06:00
Bryan Ashby 65ad2ffdd1 * VC.setFocus(): Attaches/detaches events/etc. 2015-07-08 22:34:40 -06:00
Bryan Ashby f348e06d86 * Some WIP on FSE 2015-07-08 22:07:25 -06:00
Bryan Ashby 06648403cc * Cleanup for emiting edit position 2015-07-06 23:26:16 -06:00
Bryan Ashby 7c0446bf79 * Fixed some logging of client IP addresses/etc.
* Some updates to FSE work for position and edit mode display
* Use cursor save/restore for some things vs internal tracking
2015-07-05 23:16:22 -06:00
Bryan Ashby 3d5d21bcb5 * Lots of WIP on FSE demo
* WIP emit position from MutliLineEditTextView
* ansi.rawWrite() when no iconv/lfs to be processed
2015-07-05 19:05:55 -06:00
Bryan Ashby 13d104c840 * A lot of cleanup in ViewController
* ViewController.getFormData()
* Lots of WIP work on fse.js & multiple forms
2015-07-04 12:02:37 -06:00
Bryan Ashby 8e0dc505b1 * Fix bug in MCI parsing with lower case alpha character such as 'f' for fIRST lETTER text styles
* Minor fixes
2015-07-01 22:53:01 -06:00
Bryan Ashby c1469a1f9c * isSpecialKeyMapped() renamed to isKeyMapped()
* Functional HorizontalMenuView
* Minor updates
2015-07-01 20:18:34 -06:00
Bryan Ashby 1606437c27 * Minor updates to HorizontalMenuView (WIP) 2015-06-30 23:09:58 -06:00
Bryan Ashby d346fe72ee * Lots of minor code cleanup
* WIP work on HorizontalMenuView
* Initial art for HorizontalMenuView demo
2015-06-30 22:45:27 -06:00
Bryan Ashby 541be2d65a * Fix TextEditView when 'text' set by default
* Fix TextEditView row vs col
* Start skeleton on HorizontalMenuView
2015-06-28 22:31:12 -06:00
Bryan Ashby 670bf0fd6e * Load fse stuff from menu.json. Will use form 0..n 2015-06-27 15:32:29 -06:00
Bryan Ashby e7e9070414 * Some additional message related tables
* Change FSE art to 79 columns
2015-06-26 23:12:12 -06:00
Bryan Ashby 32fdbab88d * Very very early work on FSE module 2015-06-25 22:34:33 -06:00
Bryan Ashby f56546cae5 * Rename message editor to fse.js 2015-06-25 16:33:17 -06:00
Bryan Ashby 7df509d5f0 * Notes mostly 2015-06-24 23:12:03 -06:00
Bryan Ashby 8c7d609abb * Start skeleton work on message editor module 2015-06-24 23:09:26 -06:00
Bryan Ashby 30b98e9e3b * Some notes
* Placeholder menu editor module
2015-06-24 22:45:21 -06:00
Bryan Ashby 2c8ce36154 * Minor code cleanup
* Some work on Page Up / Page Down (WIP)
* Bug fixes with word wrapping, width checks @ word wrap
2015-06-20 15:15:37 -06:00
Bryan Ashby 832442288e * Some mostly placeholder work for @art, etc. in View properties (e.g. menu.json)
* Lots of work on MultiLineEditTextView2. WIP text insertion, retrieval, etc.
* Tabs working good at a basic level
2015-06-06 19:34:55 -06:00
Bryan Ashby feab2e0233 * Some SyncTERM / EtherTerm key support for new key system
* Break long words for word wrap if required
* Lots of cursor movement improvements for MultiLineEditText2
* Code cleanup
2015-06-06 00:33:59 -06:00
Bryan Ashby 8a17ca694e * Most everything converted to new 'key press' system. Still WIP, some cleanup & probably a few keys to add for various BBS style terminals 2015-06-05 16:20:26 -06:00
Bryan Ashby e62d146075 * WIP on MaskEditTextView stuff. Nothing major yet 2015-05-27 17:27:36 -06:00
Bryan Ashby d83e8e1b55 * Messy, but semi working concept for render vs real gap text buffer 2015-05-26 22:17:57 -06:00
Bryan Ashby a24b1045ff * No reall progress on multi line... dur. 2015-05-20 23:07:36 -06:00
Bryan Ashby 159cdcb763 * Mostly notes & toying around with MultiLineTextEditView 2015-05-17 21:33:27 -06:00
Bryan Ashby 3bf34487d7 * Start (mostly placeholder) for MultiLineEditTextView 2015-05-16 14:39:14 -06:00
Bryan Ashby 0d9add70bd * Moved menus -> menus.json::menus
* Move prompts -> prompts.json::prompts
* Default to 80x25 if NAWS/ENV/CPR term size negotiations fail. Seeing this with Netrunner. May need more work.
2015-05-15 23:02:58 -06:00