Commit graph

3408 commits

Author SHA1 Message Date
Simon Kornblith
951ea82cb6 Update to citeproc-js 1.0.425 2013-02-06 01:51:07 -05:00
Simon Kornblith
5afeb9d721 Update to citeproc-js 1.0.425 2013-02-06 01:50:38 -05:00
Dan Stillman
0061ff3ca5 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/preferences/preferences.xul
	chrome/content/zotero/xpcom/data/item.js
	chrome/content/zotero/xpcom/utilities_translate.js
2013-02-04 07:02:38 -05:00
Dan Stillman
e2ea7532ba Fixes #47, Dragging attachment to item removes search results 2013-02-04 04:08:34 -05:00
Dan Stillman
194343cb0f Don't update item when leaving an empty field
It looks like this has been happening for at least all of 3.0, including
when tabbing between empty fields.
2013-02-04 03:40:57 -05:00
Dan Stillman
1b1df60725 Make X-Zotero-Version and RIS/Refer prefs Firefox-only 2013-02-04 02:05:04 -05:00
Dan Stillman
650c393507 Expose launchNonNativeFiles hidden pref in Firefox
"Open PDFs and other files within Firefox when possible"
2013-02-04 01:56:29 -05:00
Dan Stillman
2cd45be191 Avoid unnecessary UI updates in various situations
beginUpdateBatch() doesn't suppress select events, so various batch
operations were triggering lots of extra selects.

This hopefully fixes the long hang some people were seeing when making
changes with an open quick search (which I was only able to reproduce in
Standalone).
2013-02-04 00:06:27 -05:00
Dan Stillman
dfdfbf1258 Properly clear temp DB tables from items list generation 2013-02-03 06:12:23 -05:00
Dan Stillman
2a0c95d0ad Cache list of an item's child attachments/notes 2013-02-03 06:10:58 -05:00
Dan Stillman
190fe8ba05 Don't leak a hidden browser for every single imported text/HTML file
It is possible we have been doing this for a very long time.

(Only local imports were affected, not snapshot saving.)
2013-02-03 02:55:30 -05:00
gracile-fr
f0ad251097 Localization of hardcoded "Quick Format Citation" dialog title 2013-02-02 15:31:41 +01:00
Dan Stillman
1a0849e489 Fix and change extraData for item change notifications
- Some item changes were putting data in the wrong form into extraData,
  which was keeping it from being passed through in notifications.
- For item modifications, set a 'changed' object, keyed by itemID, with
  just the fields that changed as keys and their old values. For
  deletes, keep the 'old' object for now, since sync relies on it.
- Remove item.serialize() for all item changes except deletions, which
  should speed up writes (and which will leave extraData empty for some
  changes).
- Currently only item fields, creators, related items ('related'), and
  'parentItem' are added to 'changed'.

Closes #220
2013-02-02 05:55:38 -05:00
Simon Kornblith
b08e52363b Merge pull request #229 from aurimasv/args
Add a way for translators to pass arguments to callbacks for HTTP requests
2013-01-31 20:00:53 -08:00
Aurimas Vinckevicius
6b878ba9f1 Delete hidden browser even if processDocuments exception handler does not fail. 2013-01-31 19:53:28 -06:00
aurimasv
eed6d2f22c Pass responseCharset to subsequent doGet calls 2013-01-31 19:42:06 -06:00
Dan Stillman
13a2bb99e1 Tweak patch from 41de387 to keep file style consistent 2013-01-31 17:45:55 -05:00
Aurimas Vinckevicius
41de3876d8 Fall back to link attachments for opening item 2013-01-31 16:17:53 -06:00
Dan Stillman
0eb4db7c33 Merge pull request #235 from aurimasv/webdav
Tweaks to WebDAV preferences
2013-01-30 23:37:45 -08:00
Simon Kornblith
6de5cb4ab1 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/recognizePDF.js
	chrome/content/zotero/zoteroPane.js
2013-01-31 01:51:54 -05:00
Simon Kornblith
6dd420458f Detect CAPTCHA 2013-01-29 17:45:57 -05:00
aurimasv
b919d27d1e Allow web translators to monitor DOM nodes for changes in order to re-trigger detectWeb 2013-01-29 03:25:05 -06:00
Dan Stillman
7cd3479094 Use eraseByURI() instead of eraseByURIPrefix(), and fix params 2013-01-29 04:03:56 -05:00
Dan Stillman
56bb5b17ad Better MIME type detection of Office files
For at least one Windows user, a .docx file was being interpreted as
text/plain. Instead of relying entirely on the system, hard-code some
extensions we know. (More can be added.)

Also:

- Determine MIME type when opening files instead of using stored type,
  since we might have gotten smarter
2013-01-28 22:44:02 -05:00
Simon Kornblith
64a40cda69 Fix first run (broken by d64379290c) 2013-01-28 18:41:32 -05:00
Simon Kornblith
2c04b62a9e Increase use of _translatorInfo to avoid breaking translation-server 2013-01-28 16:24:29 -05:00
Simon Kornblith
a0f1bbf8a6 Fix code for determining whether to use defaultView as sandbox scope 2013-01-28 15:58:35 -05:00
Simon Kornblith
6520a71788 Merge pull request #236 from aurimasv/generateDiff
[Zotero_TranslatorTester] Move _generateDiff  and _compare out of prototype
2013-01-27 22:33:50 -08:00
aurimasv
9c7d3c3c4e Consider type-specific "title" alternatives for validating web translations 2013-01-27 05:27:36 -06:00
aurimasv
baf772741b [Zotero_TranslatorTester] Move _generateDiff and _compare out of prototype 2013-01-27 02:34:08 -06:00
aurimasv
7e808b9997 Tweaks to WebDAV preferences 2013-01-27 01:40:02 -06:00
Simon Kornblith
0417a1910d Detect CAPTCHA and stop trying to hit Google Scholar 2013-01-26 02:36:23 -05:00
Simon Kornblith
6f31a3d31a Limit Google Scholar queries to one per 1.5 seconds
Hopefully, this will stop our users from getting locked out.
2013-01-26 02:06:00 -05:00
Simon Kornblith
f9978e8f02 Update citeproc-js to 1.0.422 2013-01-26 01:49:20 -05:00
Simon Kornblith
1c3890e837 Merge branch '3.0' 2013-01-26 00:29:08 -05:00
Simon Kornblith
22eea572e2 Merge pull request #234 from aurimasv/cleanISSN
[Utilities] add cleanISSN
2013-01-25 19:47:25 -08:00
Simon Kornblith
5465c885e5 Tweaks to getHiddenPref()
- Remove references to configOptions, displayOptions, and hiddenPrefs
  from connector/translator.js. We can't rely on them to be set in
  Zotero.Translator since https://repo.zotero.org/repo/metadata doesn't
  provide them, but we shouldn't need them until we get the translator
  code anyway.
- Don't serve configOptions, displayOptions, and hiddenPrefs from Zotero
  Standalone server. There's no point in serving anything that
  https://repo.zotero.org/repo/metadata doesn't.
- Alias the translator metadata loaded into the sandbox as
  Zotero.Translate._translatorInfo. Use this to get configOptions and
  hiddenPrefs.
- "v" browserSupport indicates that a translator can be run through
  translation-server, not that translation-server is required.

This obviates the need for zotero/zotero-connectors#4.
2013-01-25 22:40:14 -05:00
aurimasv
0c38ce03ac Allow translators to define translator-specific hidden preferences. 2013-01-25 22:40:14 -05:00
Aurimas Vinckevicius
1f08592d0e [Utilities] add cleanISSN 2013-01-25 21:25:04 -06:00
Simon Kornblith
bd688f333c Merge branch '3.0' 2013-01-22 23:05:15 -05:00
Dan Stillman
5b34dce40f Remove "Try to override conflicting shortcuts" pref
I probably should have removed this years ago in 292c357e when I made
the shortcut keys only work within the Zotero pane.
2013-01-22 18:38:00 -05:00
Simon Kornblith
39e8b226cb Revert "Don't refresh item list upon tag selector actions unless the action changes the item list."
This reverts commit 7f732f56df.
2013-01-22 17:25:50 -05:00
Simon Kornblith
b3640a8ae1 Recognize multiple items properly 2013-01-21 23:31:52 -05:00
Simon Kornblith
0e79cf247c Only set timeout to 50 if undefined 2013-01-21 13:29:26 -05:00
Simon Kornblith
502f814fc4 Use Zotero.wait() to move progress indicator
This may help with #230
2013-01-21 04:07:07 -05:00
Simon Kornblith
7c24c27fb3 Merge pull request #231 from aurimasv/defaultHandlers
Set default handlers if they are not set
2013-01-20 23:20:46 -08:00
aurimasv
ee33da22e8 Set default handlers if they are not set (even if some other handlers are set). 2013-01-21 01:11:58 -06:00
Simon Kornblith
93cdb72e61 Merge branch '3.0' 2013-01-21 02:10:39 -05:00
Simon Kornblith
99e7235fe1 Fix source files to be UTF-8 2013-01-21 02:10:02 -05:00
Simon Kornblith
dbf2bc265f Merge branch '3.0'
Conflicts:
	chrome/content/zotero/recognizePDF.js
	chrome/content/zotero/xpcom/utilities.js
2013-01-21 02:01:08 -05:00
Simon Kornblith
94619403ca Tweak loading process 2013-01-21 01:58:01 -05:00
Simon Kornblith
7ff11fdebb Merge remote-tracking branch 'aurimasv/xregexp' into 3.0 2013-01-21 01:48:18 -05:00
Simon Kornblith
28d83faa64 Use 100 lines 2013-01-21 01:05:56 -05:00
Simon Kornblith
19f5aebbcb Add missing "new" 2013-01-21 01:05:18 -05:00
Simon Kornblith
91c3374d6b Merge branch '3.0' and modify recognizePDF.js to use promises
Conflicts:
	chrome/content/zotero/recognizePDF.js
	install.rdf
	update.rdf
2013-01-21 01:04:05 -05:00
Dan Stillman
9c80e9ab93 Fix sync error (since beaaf8fc) 2013-01-20 14:46:07 -05:00
Simon Kornblith
732c785af4 Merge pull request #227 from aurimasv/complete
Complete
2013-01-19 11:51:19 -08:00
aurimasv
869d0ce90a Don't report web translator errors if there is a parent translator 2013-01-19 01:50:48 -06:00
aurimasv
1d1b825c62 Properly handle cases where no translator is specified 2013-01-19 01:50:47 -06:00
Simon Kornblith
03ed7913a6 Merge pull request #226 from aurimasv/processDocuments
Eliminate race condition during processDocuments call with multiple URLs
2013-01-18 16:22:41 -08:00
Simon Kornblith
a5dc9d9647 Fix III host code 2013-01-18 18:58:34 -05:00
Simon Kornblith
4ca0e6408c Fix III host code 2013-01-18 18:58:11 -05:00
aurimasv
13c3e5427e Eliminate race condition during processDocuments call with multiple URLs 2013-01-18 15:02:46 -06:00
Dan Stillman
7f8de9c5dd Remove E4X from ZFS and WebDAV, though both need more testing 2013-01-17 04:06:11 -05:00
Simon Kornblith
5ecfb72308 Kill E4X in locateManager 2013-01-15 04:19:04 -05:00
Dan Stillman
0c442dc1f6 Remove E4X in tag-fixing sync code 2013-01-15 04:02:39 -05:00
Dan Stillman
596c6da3ee Remove Commons code, which contains E4X
Some items pane code is still in place, since it's a decent example of
dynamic items pane loading.
2013-01-15 03:23:37 -05:00
Simon Kornblith
35b1c16858 Add type="application/javascript;version=1.8" to all JS script tags (for now) 2013-01-15 03:22:00 -05:00
Simon Kornblith
0f957d6e99 Fix code that never threw a parse error before 2013-01-15 02:53:45 -05:00
Simon Kornblith
b938ce5fdd Load as JS 1.8, to avoid throwing on "for each" for now 2013-01-15 02:51:55 -05:00
Dan Stillman
f24091626d Update version and maxVersion 2013-01-14 20:30:46 -05:00
Dan Stillman
2562e64e82 Strip control characters when displaying child notes as well 2013-01-14 20:27:25 -05:00
Dan Stillman
4ea05ce091 Strip control characters when inserting notes and displaying reports 2013-01-14 16:01:02 -05:00
Simon Kornblith
620b8abb2c Merge pull request #222 from aurimasv/deepCopy
[Utilities] Deep copy `null` as `null`. Display object type in varDump
2013-01-13 22:42:21 -08:00
aurimasv
9d8869cd33 [Utilities] Deep copy null as null. Display object type in varDump 2013-01-14 00:31:00 -06:00
Dan Stillman
bc12d92639 Make date parts indicator match order in date itself
This may not work properly for all inputs, but it worked with everything I tried. (This need unit tests once we have a functional unit-testing framework again.)
2013-01-11 22:31:27 -05:00
Simon Kornblith
f14b1f250e Make clear that save to server code is non-Firefox only 2013-01-08 19:28:14 -05:00
aurimasv
70c1b1a8c4 Remove unnecessary character classes. Add some useful ones. 2013-01-06 04:27:28 -06:00
Dan Stillman
7a8e06cac2 Context-menu item delete from library root didn't show a prompt 2013-01-05 16:35:33 -05:00
Dan Stillman
d42b741756 Add lowercase 'j' to randomString() (not used for keys) 2013-01-04 14:55:28 -05:00
Dan Stillman
beaaf8fc6b Accept two missing letters in object keys (but don't use them yet)
Also:

- 'T' doesn't come after 'X' (but does probably appear disproportionally
  in existing object keys)

This commit has been brought to you by the letters 'L' and 'Y'.
2013-01-04 13:00:26 -05:00
Simon Kornblith
5e6c90d873 Merge pull request #221 from aurimasv/misc
Misc changes
2013-01-01 19:05:46 -08:00
aurimasv
6c2b8e1688 Minor documentation update 2013-01-01 21:03:32 -06:00
aurimasv
ea6a1098a6 [recognizePDF] Restructure file 2012-12-22 10:51:12 -06:00
aurimasv
74c9967b95 Tweak recognizePDF to avoid false positives: only count lines with more than 3 words (since we drop first and last later) as cleaned lines, increase number of pages read and number of lines away from median length as good lines (due to more stringent selection criteria), do not attempt to query google with a short query if we run out of lines, try to pick lines for a query that are not next to each other (to avoid finding articles that quote the article we're looking for) 2012-12-21 14:56:08 -06:00
Dan Stillman
11a83e5df3 Don't count as duplicates if DOI/ISBN don't match or year is off by > 1
Fixes #214
2012-12-21 02:10:24 -05:00
Dan Stillman
a3f7f97e02 Fix broken Note/Citation option in "Create Bibiography" 2012-12-20 01:21:36 -05:00
Simon Kornblith
45e28cf769 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/recognizePDF.js
	chrome/content/zotero/xpcom/cite.js
2012-12-19 23:16:56 -05:00
Simon Kornblith
8b37031174 Merge pull request #215 from aurimasv/typo
Fix typo in cookie sandbox.
2012-12-19 20:11:24 -08:00
aurimasv
042e2d7fbc Fix typo in cookie sandbox. i-- moved for clarity. 2012-12-19 21:15:58 -06:00
Simon Kornblith
040fa31887 Fix issue reported at http://forums.zotero.org/discussion/26922/
Since we still use E4X, this is a hack to make sure the span tag has a separate close tag.
2012-12-19 21:01:20 -05:00
Simon Kornblith
69ce6b7d1a Fix issue reported at http://forums.zotero.org/discussion/26922/
In HTML, <span/> counts as <span>, not as <span></span>. We now use the HTML parser and
serializer rather than the XML serializer to create empty span tags.

Separate fix coming for 3.0 branch
2012-12-19 20:54:09 -05:00
Simon Kornblith
87199f6011 Merge pull request #191 from aurimasv/preselect
Allow translators to pre-select items in the "multiple" select item dialog.
2012-12-19 16:50:37 -08:00
Simon Kornblith
75999bcc66 Merge pull request #206 from aurimasv/ads
Use the last version of the page for translation.
2012-12-19 16:48:23 -08:00
aurimasv
b1cc6e260e Load XRegExp into Zotero.XRegExp and Zotero.Utilities.XRegExp and make it accessible from translators. 2012-12-19 06:36:08 -06:00
aurimasv
4b13987c7e Add XRegExp from d06eff50f8/src 2012-12-19 06:33:13 -06:00
aurimasv
68657634ec Don't import duplicate identifiers 2012-12-12 00:21:47 -06:00
aurimasv
a64fa35ff2 Some tweaks to ISBN discovery 2012-12-12 00:21:47 -06:00
aurimasv
1ca0eb3965 Restructure multiline toggling. Move multiline progress bar next to the search button. 2012-12-12 00:21:46 -06:00
aurimasv
1b9c89fd59 Add support for multiple identifier lookup to the magic wand tool. Enable shift+enter for submitting input in multiline mode. Use shift+enter in single line mode to convert to multiline 2012-12-12 00:21:46 -06:00
Simon Kornblith
55d9d4ba51 Merge pull request #210 from aurimasv/wdp-css
[WebPageDump] Don't crash when @import stylesheets are null
2012-12-11 21:30:29 -08:00
aurimasv
524af03570 Make cleanISBN less aggressive. Should yield fewer false-positives. 2012-12-11 22:55:43 -06:00
aurimasv
4b09137402 Call complete() when no translators are set. Don't fail when a translator returns without throwing an error or completing an item. 2012-12-11 22:55:43 -06:00
Dan Stillman
4c58f248d1 Fix getTotalFileSize() error for file sync downloads
Also fix 'undefined' in error panel for some errors
2012-12-11 16:46:54 -05:00
Dan Stillman
bb93f019dc File sync overhaul
- New promise-based architecture
- Library-specific file sync queues, allowing other libraries to
  continue if there's an error in one library
- Library-specific sync errors, with error icons next to each library
- Changed file uploading in on-demand download mode, which had been missing
- On-demand download progress indicator in middle pane
- More accurate progress indicator
- Various tweaks and bug fixes
- Various future tweaks and bug fixes
2012-12-11 15:16:40 -05:00
Dan Stillman
4c8431ca7d Generalize Zotero.HTTP.promise() for other methods
Also make success codes configurable with an options parameter
2012-12-11 03:35:08 -05:00
Dan Stillman
1a0735b381 Disable debug output on drag over tag 2012-12-11 03:30:48 -05:00
Dan Stillman
0e3d68bdd9 Fix debug output password hiding for HTTP.promise(), and add 'debug' option
'debug' option shows response text

The status code is also now displayed for 20x even without 'debug'.
2012-12-10 22:07:06 -05:00
aurimasv
07bcccd92e [WebPageDump] Don't crash when @import stylesheets are null (caused by adblock) 2012-12-10 20:07:56 -06:00
Simon Kornblith
711b75ee66 Fix exceptions in integration.js 2012-12-06 21:23:13 -05:00
Simon Kornblith
b63886d37d Only use mappings if mapping target exists 2012-12-06 21:22:56 -05:00
Dan Stillman
73dd60f2c1 Automatic style updating for all installed styles 2012-12-06 21:05:50 -05:00
Simon Kornblith
435b1d7bd8 Merge pull request #208 from aurimasv/PDF-doiScan
[PDF metadata retrieval] Fix broken DOI scanning
2012-12-01 17:08:38 -08:00
aurimasv
ab564ed7ca [PDF metadata retrieval] Fix broken DOI scanning 2012-12-01 18:33:35 -06:00
aurimasv
7bf31afa8c Pass url to detect function 2012-12-01 01:38:49 -06:00
aurimasv
5a4b280dad Use the last version of the page for translation. 2012-11-27 16:33:49 -06:00
Simon Kornblith
2e4a218575 Fix cross-domain wrapping under most circumstances.
Cross-domain wrapping was previously broken when a page loaded a page from a different SOP, which then loaded another page. Thanks to @aurimasv for debugging this. It's still broken if one page sets document.domain and another does not, since we should wrap in this case but we won't.

Fixes #202
2012-11-25 16:26:09 -05:00
aurimasv
63f1dd163d Make varDump more resilient to property access errors 2012-11-25 16:22:46 -05:00
Simon Kornblith
428ddbab36 Fix handling of overrides and remove debug code
Addresses #202
2012-11-25 16:19:11 -05:00
Simon Kornblith
b1a70bff3d Merge branch '3.0' 2012-11-25 16:04:39 -05:00
Simon Kornblith
5f66482537 Ensure arrays exist in ZU.itemToExportFormat() 2012-11-25 16:04:20 -05:00
Dan Stillman
4caae896cf Merge branch '3.0'
Conflicts:
	chrome/content/zotero/xpcom/attachments.js
	chrome/content/zotero/xpcom/translation/translate_item.js
	install.rdf
	update.rdf
2012-11-23 01:49:32 -05:00
Dan Stillman
939719866f Fixes #199, Don't lowercase snapshot filenames
@aurimasv, let me know if this looks OK to you
2012-11-22 22:51:10 -05:00
Simon Kornblith
a57dd18afa Use cookieSandbox when saving snapshots 2012-11-22 16:59:13 -05:00
Simon Kornblith
520309bfa4 Fix typo 2012-11-22 16:59:13 -05:00
Dan Stillman
36c5b57449 Update versions 2012-11-22 16:40:23 -05:00
Simon Kornblith
673962e999 Log errors thrown by calls to Zotero.Attachments 2012-11-22 16:38:03 -05:00
Simon Kornblith
11d9c1df04 Fix issue reported by Aurimas at http://forums.zotero.org/discussion/25058/?Focus=140039#Comment_140039 (broken by https://bugzilla.mozilla.org/show_bug.cgi?id=761620) 2012-11-22 16:35:18 -05:00
Simon Kornblith
09e036e6fa Fix XMLSerializer from translators 2012-11-22 14:10:53 -05:00
Dan Stillman
02aca0660a Merge pull request #194 from aurimasv/shortenFN
Shorten long file names. Closes #8
2012-11-22 10:14:24 -08:00
Dan Stillman
9665e67042 Fix reports for notes with "&nbsp;" displaying as HTML markup
Reports are now always served as text/html
2012-11-21 19:42:47 -05:00
Dan Stillman
a56422be2c Fix for HTML markup showing up in reports (since 21bf3000) 2012-11-21 11:56:29 -05:00
Dan Stillman
1208aea99b Fix double-click on attachments/notes when viewOnDoubleClick is false 2012-11-20 05:34:38 -05:00
Dan Stillman
ac195d2a5e Merge branch '3.0'
Conflicts:
	chrome/content/zotero/integration/quickFormat.js
	chrome/content/zotero/xpcom/attachments.js
	chrome/content/zotero/xpcom/utilities.js
	install.rdf
	styles
	update.rdf
2012-11-20 03:22:49 -05:00
Dan Stillman
a0f0d52995 Fix infinite spinning on login error in 3.0.9 (from ade715ff0) 2012-11-19 00:23:16 -05:00
Dan Stillman
4eb2fae0b3 Potential optimization for itemTags lookup 2012-11-18 23:36:22 -05:00
Dan Stillman
4662c5054c Update submodules and repotime 2012-11-18 23:27:04 -05:00
Dan Stillman
711e180f8f Update version 2012-11-18 23:25:58 -05:00
Simon Kornblith
a67cd6afca Update to citeproc-js 1.0.409 2012-11-18 23:24:30 -05:00
Dan Stillman
21c0408800 Resend tags requested by server to fix tag issue for some libraries 2012-11-18 22:39:08 -05:00
Dan Stillman
231bc38c43 Fix invalid local Date Modified updates in some sync situations
(This isn't new in 3.0.9.)
2012-11-17 06:29:40 -05:00
aurimasv
0a6a8dee6d Fix typo 2012-11-16 02:33:09 -06:00
Simon Kornblith
a0243a24d9 Fix QuickFormat sizing 2012-11-15 16:06:38 -05:00
adam3smith
f6e4e5f938 add field mappings corresponding to CSL 1.0.1 release 2012-11-15 15:13:25 -05:00
Simon Kornblith
12ff659e9f Workaround for minimum Firefox window height of 60 px 2012-11-14 02:17:41 -05:00
aurimasv
fe04d60981 Shorten long file names. Closes #8 2012-11-13 23:09:17 -06:00
Dan Stillman
e6b4dde472 Debugging for non-PDF PDF download 2012-11-13 05:09:09 -05:00
Dan Stillman
ae39584c68 Notes deleted via "-" button didn't go to trash 2012-11-12 20:25:46 -05:00
Dan Stillman
5586b409e9 Merge pull request #196 from aurimasv/fixRelLink
Remove 'about:blank?' from all links
2012-11-12 15:03:56 -08:00
aurimasv
98688c24e5 Remove 'about:blank?' from all links 2012-11-12 16:47:18 -06:00