Marcin Kulik
e5809d2213
Fetch avatars of higher res
2013-11-20 21:33:25 +01:00
Marcin Kulik
08d17f28e3
Redesign asciicast page
2013-11-20 21:33:25 +01:00
Marcin Kulik
78700f59c1
Update user settings page to new layout
2013-11-20 21:33:24 +01:00
Marcin Kulik
f9717f1aa5
Update profile page to new layout
2013-11-20 21:33:24 +01:00
Marcin Kulik
59eb527ae9
Update log in pages to new layout
2013-11-20 21:33:23 +01:00
Marcin Kulik
4579951c2a
Update token error page to new layout
2013-11-20 21:33:22 +01:00
Marcin Kulik
30da684934
Update 404 page for new layout
2013-11-20 21:33:22 +01:00
Marcin Kulik
35b3326987
Pimp up the repviews (thumbnails) a bit
2013-11-20 21:33:22 +01:00
Marcin Kulik
3362da04dc
Update information on "About" page
2013-11-20 21:33:22 +01:00
Marcin Kulik
76ddc94561
Update docs pages for new layout
2013-11-20 21:33:22 +01:00
Marcin Kulik
cf78f0dfe0
Update the player to new design
2013-11-20 21:33:22 +01:00
Marcin Kulik
c0473dc217
Redesign homepage (and layout in general)
2013-11-20 21:33:22 +01:00
Marcin Kulik
7c83852945
Remove old ugly styles
2013-11-20 21:33:11 +01:00
Marcin Kulik
6009250a36
Display "asciicast:<id>" as a title for title-less asciicasts
2013-11-20 21:29:43 +01:00
Marcin Kulik
e01a9e23f5
Specify URLs for ToS and Privacy Policy for Persona
2013-10-26 23:57:07 +02:00
Marcin Kulik
d5ea271393
Use protocol-relative avatar URLs
2013-10-26 23:48:35 +02:00
Marcin Kulik
eb13fd2f83
Add terms of service page
2013-10-26 22:50:54 +02:00
Marcin Kulik
641b71d964
Fix the "Start recording" links on home page
2013-10-26 00:01:27 +02:00
Marcin Kulik
88e2e54477
Add privacy policy
2013-10-25 20:01:56 +02:00
Marcin Kulik
7a9a394121
Merge pull request #141 from sickill/persona
...
Sign in with an email (Persona)
2013-10-23 13:24:06 -07:00
Marcin Kulik
5674b488ae
Fix the path to getting started page
2013-10-23 22:16:21 +02:00
Marcin Kulik
64585404e6
Make logo an actual image
2013-10-23 22:10:15 +02:00
Marcin Kulik
8728b47417
Use local copy of persona's include.js in dev environment
2013-10-23 22:00:02 +02:00
Marcin Kulik
888f3b7c80
Don't take current user's email from current profile page's user
2013-10-23 21:54:11 +02:00
Marcin Kulik
6ee6f20405
Improve the account settings page
2013-10-23 21:17:04 +02:00
Marcin Kulik
431fd87002
Use auth token for permanent sessions
2013-10-22 19:16:18 +02:00
Marcin Kulik
3e1feff84e
Auto-strip whitespace from email and nickname
2013-10-22 17:58:15 +02:00
Marcin Kulik
5bd8b05a93
Validate presence and uniqueness of both nickname and email
2013-10-22 17:52:04 +02:00
Marcin Kulik
a194d361d0
Redirect to "getting started" page after sign up
2013-10-22 17:42:32 +02:00
Marcin Kulik
352fb6ede6
Improve wording
2013-10-22 17:42:32 +02:00
Marcin Kulik
cf822f9d5e
Improvements to the new sign in flow
2013-10-22 17:08:12 +02:00
Marcin Kulik
4b5c02477b
Don't override error message for user's nickname uniqueness
2013-10-20 19:08:41 +02:00
Marcin Kulik
8dba31ce71
Auto-focus nickname field on new user form
2013-10-20 19:07:40 +02:00
Marcin Kulik
a2b0a637fa
Refactor User.for_credentials/for_email into class methods
2013-10-20 18:58:31 +02:00
Marcin Kulik
d4cbc3e504
Make Persona the only login option (with the ability to access old accounts)
2013-10-20 18:58:11 +02:00
Marcin Kulik
bc2b91f5a2
Extract base js assets bundle
2013-10-20 18:07:03 +02:00
Marcin Kulik
8c43aaf081
Add login via Mozilla Persona
2013-10-20 18:07:03 +02:00
Marcin Kulik
769acb6593
OmniAuthHelper is better name than OauthHelper
...
Conflicts:
app/models/user.rb
spec/models/user_spec.rb
2013-10-20 18:06:13 +02:00
Marcin Kulik
ac64d04a51
Remove old unused backbone code
2013-10-20 18:04:09 +02:00
Marcin Kulik
f05b787ac3
Remove debug console.log statement
2013-10-20 17:32:46 +02:00
Marcin Kulik
ef8449b44c
Keep the sane line length
2013-10-20 17:29:19 +02:00
Marcin Kulik
4bc0982c78
Keep test uploads in a separate dir but still under public/
2013-10-20 16:45:34 +02:00
Marcin Kulik
a2baeb91ea
Add a default value for headers in AsciicastCreator
2013-10-20 16:41:37 +02:00
Marcin Kulik
a31cae3548
Fix a typo
2013-10-17 23:18:08 +02:00
Marcin Kulik
791f6ea6a5
Missing dot.
2013-10-14 21:24:45 +02:00
Marcin Kulik
d324fcd714
Add the "medium" font size for the embedded player
2013-10-14 21:10:18 +02:00
Marcin Kulik
b61a321299
Adjust user_agent parsing to take python implementation into an account
2013-10-14 21:10:17 +02:00
Marcin Kulik
fa9db48620
Words
2013-10-14 21:10:17 +02:00
Marcin Kulik
3ecf1ff936
Put installation instructions on a separate docs page
2013-10-14 21:10:17 +02:00
Marcin Kulik
0740174224
Update getting started docs
2013-10-14 21:10:16 +02:00
Marcin Kulik
6e8e204aaa
Words
2013-10-14 21:10:16 +02:00
Marcin Kulik
0620b685bf
Add the embedding docs
2013-10-14 21:10:12 +02:00
Marcin Kulik
7e5af6ed56
Favor uname over user_agent when accepting upload
2013-10-13 12:29:30 +02:00
Marcin Kulik
f86734bf50
Revert "Favor uname over user_agent"
...
This reverts commit 97931ceaed
.
2013-10-13 12:28:58 +02:00
Marcin Kulik
97931ceaed
Favor uname over user_agent
2013-10-13 11:51:41 +02:00
Marcin Kulik
012736304e
Add support to the embed script for specifying the playback speed
2013-10-13 11:40:15 +02:00
Marcin Kulik
39ea1778dd
Fix shape of the play button in embedded widget under FF
2013-10-12 19:02:24 +02:00
Marcin Kulik
90954c03b6
Add support to embed script for making the terminal font 2x bigger
2013-10-12 16:34:31 +02:00
Marcin Kulik
f689595446
Fix origin check for hosts with non 80 port
2013-10-12 16:26:23 +02:00
Marcin Kulik
8c9b580367
Remove unneeded sass imports
2013-10-12 14:53:46 +02:00
Marcin Kulik
2913c04570
Add ability to start playback in widget via postMessage
2013-10-12 13:24:48 +02:00
Marcin Kulik
01d6026dd1
Add FAQ page
2013-10-12 00:20:42 +02:00
Marcin Kulik
8eb0c910e7
Update "options" page
2013-10-11 20:48:11 +02:00
Marcin Kulik
d74ead2263
Store client's user agent on Asciicast record
2013-10-11 20:44:49 +02:00
Marcin Kulik
e4cb9c0657
New installation instructions
2013-10-06 13:50:17 +02:00
Marcin Kulik
bb9e492390
Words
2013-10-06 13:02:37 +02:00
Marcin Kulik
d1b4d6eabd
Make sure progress indicator value is never larger than 100
2013-10-04 18:45:52 +02:00
Marcin Kulik
a43311aeba
Update installation instructions for OSX
2013-10-04 12:10:08 +02:00
Marcin Kulik
405e2a7a9d
Update installation instructions
2013-10-03 19:22:36 +02:00
Marcin Kulik
d71da5b369
Move asciicast attributes preparation to AsciicastAttributes
2013-09-25 21:42:59 +02:00
Marcin Kulik
f3ecd376d7
Update updated_at on all claimed asciicasts
2013-09-25 21:42:59 +02:00
Marcin Kulik
32a2f44eb6
Move user token creation/assignment to a service object
2013-09-25 21:42:59 +02:00
Marcin Kulik
b08ffd48b4
Make the ViewCounter a controller dependency in the form of a private method
2013-09-25 21:42:40 +02:00
Marcin Kulik
f02daa9069
BrushPresenter -> BrushDecorator
2013-09-24 12:31:18 +02:00
Marcin Kulik
681558074a
Update brew install URL to the working one
2013-09-24 11:08:15 +02:00
Marcin Kulik
0350f908a9
Move TimingParser to services
2013-09-23 21:21:07 +02:00
Marcin Kulik
438e962a5a
Convert docs to slim
2013-09-23 21:05:33 +02:00
Marcin Kulik
8efb95252e
Remove unused template for FAQ page
2013-09-23 19:24:41 +02:00
Marcin Kulik
83a8976746
Remove unused assets
2013-09-23 19:13:06 +02:00
Marcin Kulik
0634f52c99
Change all occurrences of old project name to the new one
2013-09-23 19:05:36 +02:00
Marcin Kulik
5c80bf21f1
Don't display cursor when it's invisible... obviously
2013-09-23 11:27:27 +02:00
Marcin Kulik
e15828b56a
Bring back cursor blinking
2013-09-23 11:09:25 +02:00
Marcin Kulik
3c4ac3666e
Update copy & code to use the new name
2013-09-22 14:07:42 +02:00
Marcin Kulik
9dad3840fa
Use yajl for parsing terminal snapshots
2013-09-22 12:25:34 +02:00
Marcin Kulik
e3678da97a
Remove Oj - it leaks like a little puppy
2013-09-22 11:18:49 +02:00
Marcin Kulik
ee636bf958
Update the player to use backend-generated JSON frames
2013-09-21 13:05:13 +02:00
Marcin Kulik
a1cd6ca2ae
Bring on the terminal.c!
2013-09-21 13:05:13 +02:00
Marcin Kulik
82ff7148a9
Make sure the preview snapshot always has requested height
2013-09-21 13:05:12 +02:00
Marcin Kulik
f15f2e11a5
Avoid making a copy of feed data string
2013-09-21 13:05:12 +02:00
Marcin Kulik
b3da1c0656
Don't crash when stdout data is shorter than expected
2013-09-21 13:05:12 +02:00
Marcin Kulik
79f8eaf2ed
Fix display of reversed characters in the thumbnails and the preview
2013-09-21 13:05:12 +02:00
Marcin Kulik
82fa03863d
Adjust Snapshot#crop to work on already optimized lines
2013-09-21 13:05:12 +02:00
Marcin Kulik
ff153fff1a
Make Terminal return already optimized snapshot
2013-09-20 23:05:34 +02:00
Marcin Kulik
0e2c1784c6
Use terminal binary as a base for Terminal
2013-09-20 23:05:33 +02:00
Marcin Kulik
e537c1b78a
Only release terminal if it is not nil
2013-09-14 13:13:58 +02:00
Marcin Kulik
e862acedb7
Animation frames generation on the backend
2013-09-10 21:29:17 +02:00
Marcin Kulik
bc6e1ddc3d
Make implementation of Stdout more readable
2013-09-02 21:54:19 +02:00
Marcin Kulik
9e152c3172
Sanitize all characters coming from TSM::Screen#draw
...
It happens that libtsm's screen_draw returns a character that can't be
properly encoded as utf-8. As what we get is only meant to be displayed
and not interpreted we can replace these invalid characters with a
questio mark, which is a common practice for printing invalid chars.
2013-08-29 15:10:46 +02:00
Marcin Kulik
26801d207f
Make Asciicast use BufferedStdout instead of Stdout
2013-08-28 16:56:40 +02:00
Marcin Kulik
c3fc452b91
Make Grid#crop easier to read
2013-08-28 16:22:59 +02:00
Marcin Kulik
731fb11e8b
Simplify Grid#trailing_empty_lines implementation
2013-08-28 16:21:31 +02:00
Marcin Kulik
b47fa27968
Refactor Snapshot to use Grid under the hood
2013-08-27 20:31:31 +02:00
Marcin Kulik
d324200b01
Add BufferedStdout class whose #each yields at 60 hz tops
2013-08-27 20:31:27 +02:00
Marcin Kulik
c775bc8b06
Use less spans for thumbnail rendering
2013-08-26 11:02:32 +02:00
Marcin Kulik
31a880b7aa
Simplify Snapshot and its presenter
2013-08-25 20:49:23 +02:00
Marcin Kulik
34b39d0db3
Simplify the structure returned by Terminal#snapshot
...
Each screen character is in its own, separate cell now. In addition the char
attributes don't include attributes that are "falsy".
2013-08-25 17:41:04 +02:00
Marcin Kulik
065e2cbc30
Split AsciicastStreamer#attributes_for_streaming into smaller methods
2013-08-25 16:45:37 +02:00
Marcin Kulik
731751650c
Keep the lines shorther than 80 chars
2013-08-25 16:34:02 +02:00
Marcin Kulik
cdc2f01753
Find or build user from omniauth hash in the middleware
2013-08-19 17:08:13 +02:00
Marcin Kulik
40856933aa
Support "blink" attribute in the thumbnails
2013-08-15 23:05:09 +02:00
Marcin Kulik
a53c8de5b9
Pass paths to decompressed stdout files to Stdout
2013-08-15 20:58:41 +02:00
Marcin Kulik
cf3e812e8e
Move duration info below the thumbnail
2013-08-15 20:45:51 +02:00
Marcin Kulik
bae9bfdbc7
Use correct singular/plural form for asciicast count
2013-08-14 21:36:17 +02:00
Marcin Kulik
13119b2987
Display asciicast length on thumbnails
2013-08-14 20:40:24 +02:00
Marcin Kulik
44a7b0788e
Convert asciicasts#_preview to slim
2013-08-14 19:38:01 +02:00
Marcin Kulik
49a2abe32b
Make the "when by whom" font smaller
2013-08-14 19:27:32 +02:00
Marcin Kulik
abe0b77bcd
Convert asciicast#index to slim
2013-08-14 18:16:03 +02:00
Marcin Kulik
562cd0ef0b
Add "Show more" link on the homepage
2013-08-14 18:11:46 +02:00
Marcin Kulik
5c141003a1
Use "asciicast" over "Asciicast" in UI
2013-08-14 17:32:03 +02:00
Marcin Kulik
2e9b0a4718
Remove boring empty trailing lines from thumbnails
2013-08-14 17:24:36 +02:00
Marcin Kulik
9086aae060
Remove unused code
2013-08-14 16:38:33 +02:00
Marcin Kulik
6acea6da70
Use tilde prefix for nickname only in profile url
2013-08-14 16:30:49 +02:00
Marcin Kulik
4bb61b614f
Prevent bots from following Edit links
2013-08-14 13:45:55 +02:00
Marcin Kulik
452f5869cf
Fix Bzip2Uploader#decompressed_path for S3 storage
2013-08-13 20:13:09 +02:00
Marcin Kulik
869ca9d896
Adjust JS player to new asciicast JSON representation
2013-08-13 19:52:54 +02:00
Marcin Kulik
6db65b2a6c
Serve asciicast as JSON in chunks
2013-08-13 19:52:54 +02:00
Marcin Kulik
7e1b41dfef
Code reformating in TimingParser
2013-08-13 19:52:54 +02:00
Marcin Kulik
d21be98a5c
Adjust SnapshotCreator to the latest API changes in Terminal and Stdout
2013-08-13 19:52:54 +02:00
Marcin Kulik
0c3494d174
Require explicit call to Terminal#snapshot for getting the snapshot
2013-08-13 19:52:53 +02:00
Marcin Kulik
6c8dbf4173
Make Stdout provide data in chunks
2013-08-13 19:52:53 +02:00
Marcin Kulik
fa4c5e4664
Replace Bzip2Uploader#decompressed with #decompressed_path
2013-08-13 19:52:53 +02:00
Marcin Kulik
40da1823d6
Do not send X-Frame-Options header in embeddable widget action
2013-08-09 08:54:09 +02:00
Marcin Kulik
c22cb1cdcc
Get rid of the asciicast comments that are not used anymore
2013-08-08 15:25:27 +02:00
Marcin Kulik
20645271a1
Update models and helpers to use new Rails 4 syntax
2013-08-08 15:08:11 +02:00
Marcin Kulik
3f879e79da
Ensure terminal gets released even in case of an exception
2013-08-06 14:00:30 +02:00
Marcin Kulik
0a8cc6ff8a
One more attempt to fix the memory leak
2013-08-06 12:50:38 +02:00
Marcin Kulik
4767442875
Make Snapshot#crop return the snapshot of exact requested height
2013-08-06 00:37:37 +02:00
Marcin Kulik
7c9a9842af
Adjust color of the play prompt triangle to match color thumbnails better
2013-08-06 00:37:37 +02:00
Marcin Kulik
ade244e5d0
Fix rendering of snapshot in the player
2013-08-06 00:37:37 +02:00
Marcin Kulik
62be399455
Refactor player styles and use them for snapshots
2013-08-06 00:37:36 +02:00
Marcin Kulik
5ecf209a53
Add some TODO comments
2013-08-06 00:37:36 +02:00
Marcin Kulik
7d5a544650
Generate thumbnails from JSON snapshot via Snapshot/SnaphotPresenter
2013-08-06 00:37:36 +02:00
Marcin Kulik
ddf0e57b39
Update SnapshotWorker to generate colorful snapshots
2013-08-06 00:37:35 +02:00
Marcin Kulik
c8d574b243
Serialize asciicast snapshot just as JSON
2013-08-06 00:37:35 +02:00
Marcin Kulik
59e31baa1b
Process incoming asciicast with AsciicastCreator
2013-08-06 00:37:35 +02:00
Marcin Kulik
86a4662fe5
Abstract stdout_data and stdout_timing as a single value object
2013-08-06 00:37:34 +02:00
Marcin Kulik
caa6c52759
Rename stdout to stdout_data, stdin to stdin_data
2013-08-06 00:37:34 +02:00
Marcin Kulik
55fe325ec4
Add Bzip2Uploader for uploading, retrieving and decompressing bzip2 files
2013-08-06 00:37:34 +02:00
Marcin Kulik
1aefeb4d6b
Introduce BaseUploader with common store_dir for all uploaders
2013-08-06 00:37:34 +02:00
Marcin Kulik
56a2bb2378
Fix Snapshot#crop to not burn when height > line count
2013-08-06 00:37:33 +02:00
Marcin Kulik
d93ac84c21
Refactor AsciicastDecorator#thumbnail to render colorful thumbnail
2013-08-06 00:37:33 +02:00
Marcin Kulik
86f728364c
Add Brush model
2013-08-06 00:37:32 +02:00
Marcin Kulik
e947524533
Add a simple model representing a terminal snapshot
2013-08-06 00:37:32 +02:00
Marcin Kulik
8daf2d0f7f
Serialize Snapshot with Snapshot::Serializer
2013-08-06 00:37:32 +02:00
Marcin Kulik
a10a447c53
Make the snapshots the hashes
2013-08-06 00:37:32 +02:00
Marcin Kulik
49df9e9082
Make SnapshotWorker a Sidekiq based worker
2013-07-05 14:09:43 +02:00
Marcin Kulik
5087533126
Do the snapshotting in the service object
2013-07-05 14:09:42 +02:00
Marcin Kulik
e85104179e
Fix unbzipping of stdout files
2013-06-18 15:25:54 +02:00
Marcin Kulik
a81d9dadb3
Use tsm gem for snapshot generation
2013-06-14 22:52:55 +02:00
Marcin Kulik
4e1f01dc99
Add logging to SnapshotWorker
2013-06-14 00:11:30 +02:00
Marcin Kulik
2d6b60e027
Fix AsciicastDecorator#embed_script
2013-06-13 22:58:47 +02:00
Marcin Kulik
df6bed3541
Merge branch 'master' into embed
2013-06-13 22:40:17 +02:00
Marcin Kulik
8a52605266
Add spec for AsciicastDecorator#embed_script
2013-06-13 22:39:34 +02:00
Marcin Kulik
013eade63c
Count view only once in the same browser
2013-06-13 22:26:27 +02:00
Marcin Kulik
feec862f99
Display embed link on the asciicast's page
2013-06-13 11:45:00 +02:00
Marcin Kulik
20cf58e89b
Make the render expose its width and height
2013-06-12 23:58:24 +02:00
Marcin Kulik
f0b66b6399
Center overlays according to viewport/container width
2013-06-12 23:50:31 +02:00
Marcin Kulik
e182cce8ee
Don't use document.write to insert the player into the DOM
2013-06-12 22:47:39 +02:00
Marcin Kulik
f22837f4e9
Add "embed" css/js bundles
2013-06-12 21:52:15 +02:00
Marcin Kulik
d1dcd08861
Initial version of iframe-based embedding
2013-06-12 21:33:30 +02:00
Marcin Kulik
7a3bc80340
Prevent progress bar to span more than 1 line
2013-06-12 11:27:41 +02:00
Marcin Kulik
22ae493513
Fix terminal's line-height even more!
2013-06-12 11:07:54 +02:00
Marcin Kulik
1e57bee513
Fix terminal line's line-height
2013-06-11 17:41:24 +02:00
Marcin Kulik
49be5d6fe2
Convert layout to slim
2013-06-10 17:15:52 +02:00
Marcin Kulik
597eb5174b
Use old-sass syntax for stylesheets
2013-06-01 19:30:26 +02:00
Marcin Kulik
127f68a778
Fix Api::CommentsController#index
2013-05-28 11:13:01 +02:00
Marcin Kulik
87128c0873
Remove commented out code
2013-05-28 11:13:01 +02:00
Marcin Kulik
078b04e3a1
Fix asciicast page when its author has other asciicasts
2013-05-28 11:13:01 +02:00
Marcin Kulik
4c5c0c7d0e
Fix logging in after draper upgrade
2013-05-28 11:13:01 +02:00
Marcin Kulik
7659fe722e
Fix UsersController#show
2013-05-28 11:13:01 +02:00
Marcin Kulik
a6bbdf7a39
Load homepage asciicast in before_filter
2013-05-28 11:13:01 +02:00
Marcin Kulik
3e2bc439a0
Make sure docs pages are fine
2013-05-28 11:13:01 +02:00
Marcin Kulik
62a3ffed92
Don't check for webkit anymore when enabling WebWorker player
2013-05-28 11:13:00 +02:00
Marcin Kulik
f5a91c680b
Fix draper vs kaminari issue
2013-05-28 11:13:00 +02:00
Marcin Kulik
5f53c66639
Update decorators to use new Draper API
2013-05-28 11:13:00 +02:00
Marcin Kulik
95a0e44798
Use http url for avatar in footer
2013-05-28 11:12:59 +02:00
Mike Fiedler
fee3e947bd
Fixed upgrade command
...
`brew update foo` => This command updates brew itself, and does not take formula names.
Hence: `brew upgrade asciiio` => Error: asciiio-HEAD already installed
2013-05-20 22:14:15 -03:00
Marcin Kulik
2e8fc48473
Set MAX_DELAY constant on model, not decorator
2012-12-18 21:38:49 +01:00
Marcin Kulik
9977e69ace
Fix ensure_owner
2012-12-11 12:22:25 +01:00
Marcin Kulik
50f84295af
More space between asciicast description and thumbnails
2012-12-10 23:40:09 +01:00
Marcin Kulik
b284781620
Cover all scenatios in asciicasts controller specs
2012-12-09 21:25:45 +01:00
Marcin Kulik
11bab12afb
Extract AsciicastJSONDecorator from AsciicastDecorator
2012-12-09 21:23:37 +01:00
Marcin Kulik
9ac2c49180
Custom scopes for paginated lists
2012-12-09 21:22:12 +01:00
Marcin Kulik
1e07fafb2e
When terminal_type is empty also return '?'
2012-12-09 16:14:26 +01:00
Marcin Kulik
816e09703a
Cleanup author/profile links
2012-12-08 22:29:21 +01:00
Marcin Kulik
3b2dc7f998
Simplify author_profile_link
2012-12-08 20:51:20 +01:00
Marcin Kulik
780dff5db1
Decorate users in UserMailer
2012-12-08 20:51:20 +01:00
Marcin Kulik
a1fad7ccb7
Decorate User#nickname
2012-12-08 20:51:20 +01:00
Marcin Kulik
80619928a8
Decorate current_user
2012-12-08 20:51:19 +01:00
Marcin Kulik
3f53f2ad50
Use decorates_association instead of custom method
2012-12-08 20:51:19 +01:00