Commit graph

1319 commits

Author SHA1 Message Date
Neil Lalonde
c4904aacc0 Automatically flag someone as a spammer if their posts get at least X spam flags from N users while their trust level is 'new user'. Staff can clear and set this status from the user record in admin. 2013-06-03 16:37:40 -04:00
Sam
ef976ba891 fix pending tests 2013-06-03 17:07:44 +10:00
Sam
da22c0f359 omit single quotes from slug 2013-06-03 09:08:34 +10:00
Sam
037cbfd648 Merge pull request from netzpirat/fix-s3-images
Don't append the base url to absolute image urls without protocol.
2013-05-30 21:33:37 -07:00
Sam
d6d3f74405 Merge pull request from xtream/master
Refactored AvatarLookup
2013-05-30 21:30:39 -07:00
Neil Lalonde
b82a5dfd56 Move logic to reject slugs that are just numbers into the slug module 2013-05-30 11:54:02 -04:00
Michael Kessler
d2e45cb8fd Don't append the base url to absolute image urls without protocol. 2013-05-30 17:17:07 +02:00
Victor Cruz Dueñas
5d2a6e3994 refactored and tested AvatarLookup
less array copying

Avoid N queries
2013-05-30 11:04:05 +02:00
Sam
8874c9ea75 Add message format support that can be used on complex localization strings
Add message about new and unread topics at the bottom of topics
move localization helper into lib
2013-05-30 16:49:57 +10:00
Sam
73834370a5 work in progress, live unread and new counts 2013-05-30 16:49:57 +10:00
Chris Hunt
e94e9b7621 Set UTF-8 charset for plain text email part 2013-05-29 09:54:36 -07:00
Robin Ward
e1781240a6 Merge branch 'refactoring' of git://github.com/mattvanhorn/discourse
Conflicts:
	lib/text_sentinel.rb
2013-05-27 10:42:20 -04:00
Chris Hunt
13c4266c74 Allow Chinese characters in Topic titles 2013-05-26 13:56:42 -07:00
Matt Van Horn
d5958f8779 Sliding window rate limiting
Switched the algorithm to use a circular buffer
based on a redis list
2013-05-25 12:37:28 -07:00
Robin Ward
1313c0f094 FIX: When using a search context, *prefer* the context's results, don't restrict to only them. 2013-05-24 16:17:09 -04:00
Robin Ward
bd779834e5 Use search context for filtering search results by current category or user 2013-05-24 14:04:26 -04:00
Konrad Borowski
8bc4264c98 Thread title fixer should ignore special cases like iLetter 2013-05-23 21:31:08 +02:00
Robin Ward
8e8d9af2bf Use classes instead of a complicated nested hash for search results 2013-05-23 12:44:47 -04:00
Robin Ward
0bd61df34c Merge pull request from mattvanhorn/refactor_topic
Refactor topic
2013-05-23 07:26:22 -07:00
Matt Van Horn
806255b3c4 refactor Topic validation
introduce a couple of custom validators
fix minor discrepancies in tests
copy I18n error message keys to default location
clean up validation invocation
move some responsibilities out of validator into class
2013-05-22 22:31:52 -07:00
Sam
fcc7192fd2 User tracking state implementation progress for live unread / new counts 2013-05-23 15:22:06 +10:00
Robin Ward
7a31630837 Search Refactor: Remove some manual SQL, make search data tables more idomatic Rails/AR 2013-05-22 16:31:13 -04:00
Robin Ward
b9a310f4b1 Search Refactor: Let's use a class to keep track of our state rather
than passing params everywhere. Also make the private API private.
2013-05-22 15:22:06 -04:00
Matt Van Horn
872995db57 refactor guardian class for clarity & correctness
introduce NullUser to avoid type-checking
DRY up code
reduce number of multiple returns
remove some redundant/impossible logic branches
add pending test for possible bug
add test & fix for ability to flag archived posts
add #secure_category? method to topic class
Fix bug that prevented flagging of archived topics
Rename NullUser to AnonymousUser
DRY up can_<action>? methods
Fix some ownership logic, and a test, for Guardian
2013-05-22 01:09:34 -07:00
Sam
da6a88634b improve best filter so it properly excludes all admin messages from count as well 2013-05-22 15:14:47 +10:00
Sam
c4d8085fc5 remove moderator status posts from best feed 2013-05-22 15:04:53 +10:00
Jason Kriss
c22435562d fix small typo in search_spec 2013-05-21 05:56:04 -03:00
Sam
b5eff93a9d update message bus to support per client filtering
start work on user_tracking_state
fix can_ban? in guardian
expose protected scopes on topic_query we need
move guardian spec to use build as opposed to creating topics / posts / users
start work on user tracking spec
2013-05-21 16:39:51 +10:00
Sam
80fb20816c get rid of nonsense 404.html
correct 404 handling for invalid pages
2013-05-20 10:29:49 +10:00
Sam
24c997966e Merge pull request from sanderdatema/post_creator
Set created_at manually through PostCreator
2013-05-19 16:34:45 -07:00
Chris Hunt
fb4e5973db Fix spelling mistake in spec doc 2013-05-18 13:11:34 -07:00
Chris Hunt
c2a4f16f24 Show posts for last page when page out of range 2013-05-18 13:11:01 -07:00
Sander Datema
286a06bd4e Set created_at manually through PostCreator 2013-05-18 21:24:29 +02:00
Neil Lalonde
f3282e33a3 Add tabs to category create/edit modal. Categories can have a default auto-close setting that applies to all new topics created in the category. Add rspec-given and write some integration tests. Tests for topic auto-close with category default 2013-05-17 11:05:35 -04:00
Robin Ward
d554a59102 Support for a new site setting: newuser_spam_host_threshold. If a new user posts a link
to the same host enough tiles, they will not be able to post the same link again.

Additionally, the site will flag all their previous posts with links as spam and they will
be instantly hidden via the auto hide workflow.
2013-05-16 12:19:50 -04:00
Sam
e9ebadb414 Nuke message_bus_observer move to service class and classes
Secure all messages triggered by post creation and all user actions so they don't leak
(meaning, if you have a browser open and secure topics are created you will only get them if you are allowed to see them)
2013-05-16 15:03:16 +10:00
Sam
ef98b60184 disable observers in tests, enable as needed, tests are 20% faster 2013-05-14 11:59:55 +10:00
Robin Ward
fff46cf5aa Can search by URL or ID 2013-05-13 17:07:58 -04:00
Neil Lalonde
9828c87525 Topic Auto-Close: admins and mods can set a topic to automatically close after a number of days 2013-05-13 12:53:52 -04:00
Sam
b6bf95e741 speed up startup (avoid loading some gems on startup)
correct group permission leaks
add Discourse.cache for richer caching support
2013-05-13 18:04:03 +10:00
Sam
30501e943c fix search 2013-05-13 11:07:21 +10:00
Régis Hanol
297680c28d FIX: pinned topic excerpt is not properly truncated 2013-05-10 12:28:17 +02:00
Sam
942f168ab6 UI still a tad rough, but we have a first pass of secure categories 2013-05-10 16:47:47 +10:00
Sam
4f328e3e45 +x on files makes no sense unless they really are executable
rails in the script dir makes no sense, use binstubs or bundler instead
2013-05-09 17:35:15 +10:00
Neil Lalonde
f9a82f3aa0 Add a spec for category list with empty category 2013-05-07 15:52:45 -04:00
Neil Lalonde
8e24a608b0 Show empty categories on categories page to people people who can edit and delete categories 2013-05-07 15:31:56 -04:00
Sam
e9fc272db7 remove acts_as_paranoid, use .trash! , .recover! and .with_deleted as needed
makes upgrading to rails 4 possible
2013-05-07 14:39:01 +10:00
Sam
3eab0be4a8 deleting posts as an admin was bust 2013-05-03 17:56:23 +10:00
Sam
65cd00cf25 moderators now have teeth, more at http://meta.discourse.org/t/moderator-permission-set/6307/5
allow pms to be targetted at groups
2013-05-02 15:15:53 +10:00
David Celis
6be26f5316 Update to Imgur API v3
Version 2 of Imgur's API is deprecated. Their documentation for v2 is no
longer online, and applications can only be registered under version 3.
Version 3 of their API has a slightly different endpoint but, more
importantly, uses a Client ID/Secret pair instead of an API Key.

This PR updates Discourse to use the new version of Imgur's API.

Signed-off-by: David Celis <me@davidcel.is>
2013-05-01 21:39:10 -07:00
Sam
e4a76812a6 this is a slightly round about way of making our self oneboxes sane
shrunk avatar to 60px, added global whitelisting
2013-05-01 16:38:13 +10:00
Sam
b25a5a20bb option to strip links from excerpts 2013-04-30 13:25:55 +10:00
Neil Lalonde
eb151d440b Don't call discourse hub during user destroy if hub integration is disabled 2013-04-29 11:39:05 -04:00
Sam
5cfcdc7ef0 backend for secure categories mostly done (todo pm groups) 2013-04-29 16:33:43 +10:00
Ryan Boland
9bc8faeaf2 added rottentomatoes.com onebox 2013-04-28 16:24:03 -04:00
Sam
eb085beea8 attempt to fix the UTF-8 warn in the log, turns out this runs really deep, when you hit deliver in test it clones the mail not setting charset properly, leaving as is for today but fixing prod at least 2013-04-26 16:18:54 +10:00
Jeff Atwood
b64a4100fa change "visitor" trust level to "new user"
I blame me for this mistake.. visitor means other stuff in practice. New
User is correct meaning.
2013-04-17 16:11:24 -07:00
Régis Hanol
e76f629df8 Text Cleaner now removes all periods from the end of the title 2013-04-18 00:19:42 +02:00
Sam
437142424c speed up tests, fix notification of mentioned users in pms 2013-04-17 17:39:18 +10:00
Neil Lalonde
3b6aeb14c7 Add subtype to topics to classify private messages 2013-04-16 16:56:18 -04:00
Régis Hanol
c2e58b61c9 automatically resizes images 2013-04-15 23:32:26 +02:00
Régis Hanol
b24c1a1ad9 better consistency around email case sensitivity 2013-04-15 02:20:33 +02:00
Neil Lalonde
c6ab9fec9d Unregister forum membership at Discourse Hub when deleting a user 2013-04-15 14:52:07 -04:00
Neil Lalonde
651cfba93f Add ability to destroy a user with 0 posts 2013-04-12 16:53:00 -04:00
Régis Hanol
c5cf8be864 auto replace rules in titles 2013-04-10 11:00:50 +02:00
Sam
33e3ad1603 clean up onebox application so it uses a single code path
use fragments for oneboxes
strip parent <p> if <div> is in it
clean some tests
2013-04-10 17:52:38 +10:00
Michael Scott Shappe
2fb673dd72 Create and use new rspec matcher 'match_html'
This introduces match_html, which converts actual and expected HTML strings into "canonical" HTML using Nokogiri with NOBLANKS and COMPACT, and then does a simple equality comparison.

This eliminates whitespace differences introduced by library changes (e.g. the libxml2 2.9.0 change).

pretty_text_spec.rb has been changed to use match_html where appropriate. and all tests pass under libxml2 2.7.6, 2.8.0 or 2.9.0
2013-04-09 22:30:10 -05:00
Robin Ward
00f9e628e0 Don't apply markdown to content of [quote] -- it messes up spacing. 2013-04-09 17:32:50 -04:00
Régis Hanol
d080ae4d2d don't track links in oneboxes 2013-04-08 02:24:12 +02:00
Robin Ward
a14f62766e Replace MultisiteI18n hack with SiteContent and admin editing. 2013-04-05 16:48:15 -04:00
Robin Ward
cecdafd4e8 Fixes broken spec 2013-04-05 16:27:25 -04:00
Robin Ward
af9b27358c If an admin or moderator edits a visitor's post, the restrictions should be based
on the *editors* access rights, not the original poster.
2013-04-05 13:59:00 -04:00
Sam
4fbf017272 get regular trust level going, self heal inconsistent topic timings 2013-04-05 15:30:28 +11:00
Robin Ward
738789f336 Admins can't lock themselves out of a site by setting approval. 2013-04-03 12:23:28 -04:00
Régis Hanol
cf3eb98321 add GitHub commit onebox 2013-04-03 03:36:38 +02:00
Robin Ward
473a64d39d Add score, percent_rank to topics. Adds HotTopic model and consolidated job to calculate
hotness. Note: People on Heroku will have to update their jobs to the new structure
in Heroku.md
2013-03-28 15:39:54 -04:00
Sam
2295290383 added best=N option to get N best comment on a post 2013-03-27 22:53:11 -07:00
Robin Ward
36269cfbaa Rename 'popular' to 'latest'. First stab at 'Hot' tab. 2013-03-27 16:21:23 -04:00
Robin Ward
f1e2923a91 Display correct post counts, even with a filter active 2013-03-26 15:06:23 -04:00
Robin Ward
5dc47c2d82 Rename posts_count in topic view to post_counts_by_user which makes much more sense 2013-03-26 14:06:24 -04:00
Robin Ward
2efd3e61c7 TopicView respects sort_order and better specs 2013-03-26 13:27:11 -04:00
Robin Ward
90443dac30 Don't email about posts if the user deleted it. 2013-03-25 13:40:48 -04:00
Karan Misra
5dfb04e4b3 Convert a lot of :a => b to a: b and bring peace to the world 2013-03-25 05:07:36 +05:30
Robin Ward
9c38c13ac5 The "Best Of" mode uses a percentage ranking of posts. 2013-03-22 15:44:39 -04:00
Neil Lalonde
6f8d13d47e Dashboard warning when sidekiq is not running 2013-03-22 11:35:51 -04:00
Régis Hanol
2ab08ef21d FIX: OpenGraph tags not fully sanitized 2013-03-22 12:32:56 +01:00
Neil Lalonde
8cc7f3c20b Dashboard warning when clockwork doesn't seem to be running 2013-03-21 16:51:50 -04:00
Robin Ward
babcfe6234 Cache oneboxes in Redis now instead of postgres. 2013-03-21 13:11:54 -04:00
Sam
62c60540be pull moderator into own column, rename trust levels 2013-03-19 21:06:11 -07:00
Robin Ward
49c66037b1 Moved deleting tests to post_destroyer_spec 2013-03-19 14:15:08 -04:00
Robin Ward
59fc3bfac4 PostDestroyer to replace callbacks for destroying 2013-03-18 17:55:11 -04:00
Robin Ward
897d48b145 Moved more Post callbacks into service classes 2013-03-18 17:54:55 -04:00
Robin Ward
aea848f164 Move MessageBus observer into PostCreator 2013-03-18 17:54:39 -04:00
Robin Ward
b6224b014c Move a bunch of callbacks into PostCreator 2013-03-18 13:56:26 -04:00
Sandy Vanderbleek
204dcc43a4 Use Diffy as DiffEngine implementation 2013-03-15 17:31:51 -07:00
Regis Hanol
2039c0f704 fix the specs errors due to a change to the min topic title's length 2013-03-11 14:51:24 +01:00
Robin Ward
d1d4530efd User Profile enhancements:
- Added PreloadStore support to avoid duplicate requests
- preliminary SEO
- Support for opengraph/twitter cards
2013-03-08 15:04:37 -05:00
Robin Ward
fb573b917f Merge pull request from ZogStriP/min-search-term-length-site-setting
added the min-search-term-length site setting
2013-03-08 06:58:45 -08:00
Robin Ward
d848a9fedc Add opengraph and twitter card support to topics 2013-03-07 17:46:43 -05:00
Robin Ward
052887c296 Category Topics are no longer invisible, they are pinned. 2013-03-07 12:46:23 -05:00
Robin Ward
5349e1b163 Merge pull request from ZogStriP/g10n-wikipedia-oneboxer
globalized wikipedia onebox
2013-03-07 09:23:19 -08:00
Robin Ward
f8d8272406 Cleaned up TopicUserSpec, introduces clearing of pinned topics 2013-03-07 12:19:25 -05:00
Regis Hanol
5703d6c730 added the min-search-term-length site setting 2013-03-07 16:52:01 +01:00
Régis Hanol
621995f35a globalized wikipedia onebox 2013-03-07 03:30:40 +01:00
Sam Saffron
8f56a09e82 PBKDF2 gem is trouble, removing and hand coding for now 2013-03-06 23:12:16 +11:00
Régis Hanol
239cbd2d58 enforce coding convention
replaced every `and` by `&&` and every `or` by `||`
2013-03-05 01:42:44 +01:00
Robin Ward
35d5c899dd Merge pull request from tijmenb/fix-hosts-in-oneboxer
Fix display hosts in oneboxer
2013-03-04 11:04:02 -08:00
Robin Ward
59b0299a27 Merge pull request from goshakkk/enum-spec-valid
Make Enum#valid? specs test the right thing
2013-03-02 08:00:46 -08:00
Michael Berg
50dcaa0205 Removed Strange Test-Output 2013-03-02 12:23:40 +01:00
Gosha Arinich
28bc5a6c89 make Enum#valid? specs test the right thing 2013-03-02 10:40:32 +03:00
Tijmen Brommet
ba04e72a99 Fix weirdly indented code 2013-03-02 00:48:49 +01:00
Tijmen Brommet
eaef66a423 Fix display host for onebox 2013-03-02 00:46:55 +01:00
Robin Ward
5cf69baf56 Add specs for Enum class 2013-03-01 17:05:39 -05:00
Robin Ward
d410f043a9 Merge pull request from alxndr/category-rss
RSS for topics in a category
2013-03-01 12:01:26 -08:00
Gosha Arinich
0c99dea153 introduce Enum 2013-03-01 21:16:36 +03:00
Alexander
fd240c1967 RSS for topics in a category
Creates a new route for category RSS
2013-03-01 09:52:59 -08:00
Kirill Pimenov
f639397aff Correct stripping of non BasicLatin characters 2013-02-28 23:52:35 +04:00
Alexander
8855a0bfbe RSS of a topic via new route
Adds TopicView#recent_posts; Post#by_newest, #with_user, #author_readable; User#readable_name
Autodiscovery tag in topic show HTML.
2013-02-26 14:54:17 -08:00
Gosha Arinich
cafc75b238 remove trailing whitespaces ❤️ 2013-02-26 07:31:35 +03:00
Sam Saffron
430a397cde comment out missing test 2013-02-24 22:59:09 +11:00
Sam Saffron
b66db4153d refactor and organise current_user better 2013-02-24 21:42:04 +11:00
Robin Ward
532b1f5450 Can edit category descriptions, they show up in a title attribute 2013-02-22 13:43:47 -05:00
Robin Ward
42d996aae1 Show empty categories to those who can create them (admins/mods) 2013-02-21 10:43:10 -05:00
Robin Ward
13b0b874fb Merge branch 'onebox-safety' of git://github.com/tms/discourse 2013-02-19 16:15:35 -05:00
Neil Lalonde
c0371ff427 Add version checking that shows on the admin dashboard 2013-02-19 15:20:49 -05:00
tms
e951eff5bb Allow oneboxers to specify their simple_onebox text is unsafe 2013-02-19 14:51:44 -05:00
Robin Ward
bb1156cee1 filter out closed/archived/invisible topics from suggested 2013-02-19 14:38:59 -05:00
Robin Ward
ae9bee2a91 Merge pull request from jeremybanks/master
Do not strip leading and trailing whitespace from raw posts
2013-02-19 08:15:39 -08:00
Sam Saffron
d9531d94d5 basic lightbox support 2013-02-19 17:57:14 +11:00
Jeremy Banks
eb2a5e4654 Merge branch 'origin/master'
Conflicts:
	lib/text_sentinel.rb
2013-02-18 21:41:20 -05:00
Jeremy Banks
6af69f7e77 Do not strip leading and trailing whitespace from raw posts. 2013-02-15 20:58:33 -05:00
Alexander
6c4ae05454 Removes iconv dependency
Fixes 
2013-02-15 13:36:19 -08:00
Sam Saffron
a8085f15c4 grab highest post number from the raw data, so deletions at the end of a topic work 2013-02-15 13:08:37 +11:00
Dan Neumann
44642d4d0c slug should replace underscores 2013-02-14 17:04:30 -06:00
Robin Ward
d740d7b25f Fix for foreign language titles: Only enforce upper case rule on english alphabet. 2013-02-14 16:09:57 -05:00
Neil Lalonde
39eab7c425 Replace mentions of mothership with discourse_hub 2013-02-14 12:57:26 -05:00
Robin Ward
cba4c9051a Merge pull request from jaimeiniesta/replace_hpricot_with_nokogiri
Replace hpricot with nokogiri
2013-02-14 07:55:19 -08:00
Robin Ward
b94b9d2383 Merge pull request from ismaelga/moderators-buttons
Create moderators
2013-02-14 07:26:50 -08:00
Jaime Iniesta
e4c1b9702b Use FakeWeb to fake web requests on specs 2013-02-14 11:35:50 +01:00
Jaime Iniesta
6995e75d41 Replace Hpricot with Nokogiri 2013-02-14 11:35:50 +01:00
Jaime Iniesta
84a167725d Add specs for oneboxer components: amazon, android, apple, flickr and wikipedia 2013-02-14 11:34:33 +01:00
Sam Saffron
87d83802b9 added option that allows users to decide when they consider topics new (default 2 days old or newer)
added site_setting to control the default new_topic_duration_minutes
added 10 minutes option for auto_track_topics_after_msecs, default bumped up to 5 mins
2013-02-14 17:36:14 +11:00
Ismael Abreu
80bec6efc9 Adds grant and revoke moderation buttons so admins can make users moderators 2013-02-14 01:12:23 +00:00
Robin Ward
dee9e9a51f Fix bug where links to posts weren't being tracked 2013-02-13 15:23:09 -05:00
Robin Ward
a9da9c5fde Merge pull request from danneu/slug-simplify
replace reinvention of #parameterize
2013-02-13 07:23:26 -08:00
Robin Ward
27a07054d7 We never want to filter TopicView to just one post. 2013-02-12 19:02:16 -05:00
Dan Neumann
4a390bc562 remove reinvention of #parameterize 2013-02-12 17:53:06 -06:00
Robin Ward
924ad1dae0 Merge pull request from gammons/master
Refactored TopicsController#show into something that is much more maintainable
2013-02-12 08:36:20 -08:00
Neil Lalonde
4636b354b4 Use the new mothership change_nickname API 2013-02-12 10:19:02 -05:00
Sam
6e74b4fb0c Merge pull request from danneu/slug-refactoring
Lean on Inflector for slug transliteration.
2013-02-11 19:31:16 -08:00
Sam Saffron
ad88487a32 Merge branch 'master' of github.com:discourse/discourse 2013-02-12 13:45:24 +11:00
Sam Saffron
2b276bc2c8 gist oneboxer issues 2013-02-12 13:45:08 +11:00
Dan Neumann
50cf8cd4d5 Set up slug.rb for obvious method extractions. 2013-02-11 20:36:54 -06:00
Dan Neumann
9daf53df73 lean on Inflector transliteration 2013-02-11 20:34:38 -06:00
Grant Ammons
f3dc93a0db WIP, a very nice refactoring of TopicsController#show 2013-02-11 17:54:56 -05:00
Robin Ward
e033213f84 Merge pull request from danneu/plugin-registry-patch
Extracted default value initializers.
2013-02-11 14:50:09 -08:00
Sam Saffron
f68f59c24f setting to exclude rel nofollow from particular domains 2013-02-11 18:58:19 +11:00
Sam Saffron
543845c673 rel nofollow, on by default to protect forums from spam etc. we should consider lifting it at high trust by default. 2013-02-11 11:43:07 +11:00
Sam Saffron
af810f38dd UserSearch refactor
Added .sql_builder to all AR models
2013-02-10 23:37:24 +11:00
Grant Ammons
701ecddac2 factor out @post.revise into its own class. clean up PostRevisor class to be more readable 2013-02-09 10:33:25 -05:00
Robin Ward
03a798b202 Can clear flags on deleted posts if you're a moderator 2013-02-08 19:07:29 -05:00
Dan Neumann
0cf68e2714 Extracted default value initializers. 2013-02-08 01:56:12 -06:00
Robin Ward
084a873b91 Give regular users a delete button. If they click it, their post will be revised to
say it was deleted.
2013-02-07 15:14:23 -05:00
Robin Ward
d49cf88c35 Merge pull request from danneu/slug-patch
Strip leading and trailing slug punctuation.
2013-02-07 07:02:58 -08:00
Robin Ward
40da901e5d Introduction of TextSentinel to enforce title and body quality. 2013-02-06 20:53:34 -05:00
Dan Neumann
ee8d68842e Strip leading and trailing slug punctuation. 2013-02-06 19:52:14 -06:00
Robin Ward
f1a3e76d2b Support for replacing Site Message content with keys specific to a multisite. 2013-02-06 15:29:03 -05:00
Sam Saffron
0f88947279 fix onebox for your own site 2013-02-06 16:22:11 +11:00
Robin Ward
21b5628528 Initial release of Discourse 2013-02-05 14:16:51 -05:00