Commit Graph

2661 Commits

Author SHA1 Message Date
Evan Prodromou
bf8a3c1931 disallow login for users without validated email 2011-02-21 16:20:10 -05:00
Samantha Doherty
e9184dd775 HTML and style cleanup for EmailSummary plugin. 2011-02-18 13:49:29 -05:00
Siebrand Mazeland
3e7e6138a8 Localisation updates from http://translatewiki.net. 2011-02-17 12:27:14 +01:00
Evan Prodromou
07bc802867 argument to send email summary to all users on all sites 2011-02-16 11:58:35 -05:00
Evan Prodromou
10bb94807b fix indentation in siteemailsummaryhandler 2011-02-15 16:28:20 -05:00
Evan Prodromou
f31db669b0 fix indentation in sendemailsummary.php 2011-02-15 16:27:51 -05:00
Evan Prodromou
845b1cff72 fix indentation in Email_summary_status.php 2011-02-15 16:26:44 -05:00
Evan Prodromou
59afc4aa56 fix indentation in EmailSummaryPlugin.php 2011-02-15 16:26:15 -05:00
Evan Prodromou
128bfd7011 fix indentation in usermailsummaryhandler.php 2011-02-15 16:25:37 -05:00
Evan Prodromou
ff502bb148 Get correct size for default avatar in email summary 2011-02-15 12:53:02 -05:00
Siebrand Mazeland
a86d293c93 Localisation updates from http://translatewiki.net. 2011-02-14 19:43:16 +01:00
Brion Vibber
c92358fa7b add --all and --suspicious options for update-profile-data.php 2011-02-11 12:23:03 -08:00
Brion Vibber
f30744c7c5 refactor for multi.... 2011-02-11 12:13:33 -08:00
Brion Vibber
f7b431d60b woops 2011-02-11 12:08:35 -08:00
Brion Vibber
91535365b3 Work in progress: update-profile-data.php to update ostatus profile info from the current feed 2011-02-11 11:55:23 -08:00
Evan Prodromou
dc424ab63a Merge branch 'master' of gitorious.org:statusnet/mainline 2011-02-10 22:23:06 -05:00
Brion Vibber
b09276635c Merge branch 'master' into 0.9.x 2011-02-10 12:04:13 -08:00
Brion Vibber
2bf8a68908 Fix for ticket #3039: TwitterBridge was incorrectly sending repeats of Twitter-bound messages if the repeater has sending of things to Twitter disabled.
A repeat/retweet is roughly equivalent to an active direct post, so should follow the posting rules, rather than always sending over as we do for fave notifications.
2011-02-10 10:53:24 -08:00
Zach Copley
857e35c175 Merge branch 'master' of gitorious.org:statusnet/mainline
* 'master' of gitorious.org:statusnet/mainline:
  Show aside primary on settings pages for all themes.
  correct error in README on default for deletion
2011-02-10 10:26:36 -08:00
Zach Copley
d9ace57625 FacebookBridge - remove unnecessary warning and noisy debugging statement 2011-02-10 10:24:38 -08:00
Samantha Doherty
8a87e9869f Show aside primary on settings pages for all themes. 2011-02-10 13:23:20 -05:00
Evan Prodromou
8fa44e58f9 Try not to wipe out good data with empty values in Ostatus_profile::updateProfile()
Output from 0.9.6 PuSH feeds seems to have a rump <author> but no
<activity:actor>. It was overwriting valid and useful data set up at
subscribe time.

This fix tries to avoid overwriting data. However, it may prevent
updates that delete data.

Bug: 3028
2011-02-10 09:39:40 -05:00
Brion Vibber
a76f067631 Partial revert of 073f3e99: restores the original non-hashbang URLs for twitter users as the remote profile.
Should fix issue #3027: twitter user avatars not getting imported.

Due to the change in URI, all twitter users that had been previously seen were getting new profile entries, which tried to save the same avatar. This would fail as Avatar.url has a unique index.
Note: now anything new seen in the last couple days in production will still potentially conflict.
2011-02-09 13:46:48 -08:00
Evan Prodromou
c273876298 Merge branch 'master' of gitorious.org:statusnet/mainline 2011-02-09 03:09:24 -05:00
Evan Prodromou
10500e7f85 ensure*() functions throw exceptions for errors 2011-02-09 03:08:52 -05:00
Brion Vibber
75bf756111 LOG_WARN -> LOG_WARNING 2011-02-08 23:34:37 -08:00
Zach Copley
98af8d2a19 FacebookBridge plugin - allow Facebook app ID and secret to be
initialized via config.php
2011-02-09 04:49:39 +00:00
Evan Prodromou
399977aebf Merge remote branch 'origin/pluginstatic' into testing 2011-02-08 13:39:17 -05:00
Brion Vibber
1c3fabbc27 Add a brief explanation of what group inbox is at the top of the page (instructions section), plus a message to show when there are no private messages in the inbox. 2011-02-07 12:39:40 -08:00
Brion Vibber
ac5e7b727a Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2011-02-07 12:20:12 -08:00
Brion Vibber
4883069177 Fix group regexes that got missed in Nickname::DISPLAY_FMT update: fixes bug where group linking happened, but not actual delivery, when using _underscores_ in the !group_name 2011-02-07 12:18:41 -08:00
Evan Prodromou
dbd496f901 hide feeds from group page if it's private-only 2011-02-07 14:24:35 -05:00
Evan Prodromou
204b5e8a63 Show a little indicator for private-only groups 2011-02-07 14:21:54 -05:00
Evan Prodromou
1d439ef5d8 Force notices to DMs when privacy = always 2011-02-07 12:58:42 -05:00
Evan Prodromou
80a4b9c76f Change category and copyright year 2011-02-07 12:28:58 -05:00
Evan Prodromou
e759b15a92 pagination for group inbox 2011-02-07 12:08:18 -05:00
Evan Prodromou
20824292c9 Rename PrivateGroup to GroupPrivateMessage to be clearer 2011-02-07 11:57:34 -05:00
Evan Prodromou
ee0bbdf89c Add group info to new group message email 2011-02-07 11:55:16 -05:00
Evan Prodromou
951df6b02f button on the group page to post a new message 2011-02-07 11:51:38 -05:00
Evan Prodromou
5db1479a95 Form for posting a group message on group inbox 2011-02-07 11:24:00 -05:00
Evan Prodromou
4a435e6670 Show group local nav on group inbox 2011-02-07 10:18:54 -05:00
Evan Prodromou
143cc4bdd0 Show private messages to groups in a list
Shows the messages to a private group in a list. New classes for
showing a group private message and list of group private messages.

New actions for showing a stream of group private messages and a
single group private message.
2011-02-07 09:46:26 -05:00
Evan Prodromou
842bc5708e Send a private group message with a d command 2011-02-04 15:51:59 -05:00
Brion Vibber
672eb17e94 Work in progress: partway through making profile_detail DB-accessible 2011-02-03 17:15:12 -08:00
Evan Prodromou
a002d57736 save group privacy settings 2011-02-03 16:39:52 -05:00
Evan Prodromou
8bf57019c1 autoload private group classes 2011-02-03 15:30:57 -05:00
Evan Prodromou
094bb9e1c3 redo the group dm schema, again 2011-02-03 15:28:41 -05:00
Evan Prodromou
99db745f9d Merge branch 'testing' into privategroup
Conflicts:
	lib/groupeditform.php
2011-02-03 12:56:55 -05:00
Evan Prodromou
67b83bcca8 FacebookBridge use Plugin::path() 2011-02-03 12:22:39 -05:00
Evan Prodromou
ffb7ca3e99 Realtime needs to load from own directory, not subclass's 2011-02-03 12:18:57 -05:00
Evan Prodromou
68cf2bdced Bookmark uses Plugin::path() 2011-02-03 12:04:54 -05:00
Evan Prodromou
77769e4b3c YammerImport uses Plugin::path() 2011-02-03 11:51:58 -05:00
Evan Prodromou
55af561887 ShareNotice uses Plugin::path() 2011-02-03 11:49:00 -05:00
Evan Prodromou
0c7104ec2f MobileProfile uses Plugin::path() 2011-02-03 11:46:20 -05:00
Evan Prodromou
26f0a24ab6 Merge branch 'testing' into pluginstatic 2011-02-03 11:42:58 -05:00
Evan Prodromou
70cf37cb88 fix variable name in NewMenu 2011-02-03 11:42:36 -05:00
Evan Prodromou
9ae3d3de36 NewMenu uses Plugin::path() 2011-02-03 11:41:47 -05:00
Evan Prodromou
27eeee08c1 FIXME for Plugin::path() in TinyMCE 2011-02-03 11:38:11 -05:00
Evan Prodromou
2195020566 TabFocus uses Plugin::path() 2011-02-03 11:30:14 -05:00
Evan Prodromou
50675e356b ModPlus uses Plugin::path() 2011-02-03 11:28:39 -05:00
Evan Prodromou
2f598f8c7b LinkPreview uses Plugin::path() 2011-02-03 11:25:56 -05:00
Evan Prodromou
3496559d8e InfiniteScroll uses Plugin::path() 2011-02-03 11:23:39 -05:00
Evan Prodromou
0ba450373d DirectionDetector uses Plugin::path() 2011-02-03 11:20:57 -05:00
Evan Prodromou
6494f5938c ClientSideShorten uses Plugin::path() 2011-02-03 11:19:03 -05:00
Evan Prodromou
0bab5e4a9e Autocomplete uses Plugin::path() 2011-02-03 11:16:30 -05:00
Evan Prodromou
22e8893fba OStatus uses Plugin::path() 2011-02-03 11:09:26 -05:00
Evan Prodromou
c8386c7ecb TwitterBridge uses Plugin::staticPath() 2011-02-03 11:03:24 -05:00
Evan Prodromou
26407c3e35 Realtime plugin uses Plugin::path() 2011-02-03 10:58:06 -05:00
Evan Prodromou
0a6d2d24b1 MeteorPlugin uses Plugin::path() 2011-02-03 10:51:59 -05:00
Evan Prodromou
429cbb66b4 Mapstraction plugin uses Plugin::path() 2011-02-03 10:50:11 -05:00
Evan Prodromou
52c3c4468d BlankAd uses plugins server 2011-02-03 10:46:56 -05:00
Brion Vibber
d1a96dc7af work in progress: prepping for storage of extended profile details 2011-02-02 17:29:34 -08:00
Brion Vibber
59f4734985 Edit page placeholder, link on main profile to details 2011-02-02 16:38:54 -08:00
Siebrand Mazeland
308e615a3f Localisation updates from http://translatewiki.net. 2011-02-03 01:31:31 +01:00
Brion Vibber
7a97243abf ExtendedProfile plugin initial checkin: stub mockup page 2011-02-02 16:23:24 -08:00
Zach Copley
317d22f565 Remove old Facebook Plugin (use FacebookBridge now) 2011-01-31 23:51:27 +00:00
Zach Copley
c35d8e3a3e Remove old Facebook Plugin (use FacebookBridge now) 2011-01-31 23:50:22 +00:00
Zach Copley
ad12384d8c FacebookPlugin: Fix up FBML canvas app so it keeps working after
Facebook removed Profile Boxes and some API calls it relied upon.
See: http://developers.facebook.com/roadmap/deprecations
2011-01-31 23:48:25 +00:00
Zach Copley
071d6e72e0 FacebookPlugin: Fix up FBML canvas app so it keeps working after
Facebook removed Profile Boxes and some API calls it relied upon.
See: http://developers.facebook.com/roadmap/deprecations
2011-01-31 23:47:33 +00:00
Brion Vibber
9573f725c1 Merge branch '0.9.x' into testing 2011-01-31 11:08:15 -08:00
Siebrand Mazeland
3fc323f8f9 Localisation updates from http://translatewiki.net. 2011-01-31 00:04:03 +01:00
Siebrand Mazeland
e6e402cefd Localisation updates from http://translatewiki.net. 2011-01-29 23:10:15 +01:00
Evan Prodromou
1a96a5e695 create privacy settings on new group 2011-01-26 18:48:13 -07:00
Brion Vibber
54e98ffe22 Fix ticket #3013: MAX_FILE_SIZE hidden fields were incorrectly placed
In order to apply to PHP's POST processing, the MAX_FILE_SIZE field must appear *before* the file upload field. They were incorrectly placed after, where they had no effect on POST processing.
2011-01-26 15:49:57 -08:00
Brion Vibber
625405910f Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2011-01-26 14:59:35 -08:00
Brion Vibber
c65480fb33 Fix ticket #3016: when using non-AJAX form of the ostatus subscription initiation for non-local group joins, show the "group" field instead of a blank "user" field 2011-01-26 14:59:24 -08:00
Samantha Doherty
1563c95cc3 Wee style update for bookmarks plugin. 2011-01-25 18:33:47 -05:00
Brion Vibber
621a7cb36d Merge branch '0.9.x' into testing 2011-01-25 12:57:49 -08:00
Evan Prodromou
c309bbae93 Merge remote branch 'gitorious/testing' into testing 2011-01-24 06:54:09 -07:00
Evan Prodromou
c2d7a08d07 Bookmark saving robustness fixes
First, if the tags box is empty, don't save an empty tag for the notice.

Second, if URL shortening fails, just use the regular URL.
2011-01-23 12:57:20 -05:00
Evan Prodromou
592e2be5e1 Make new menu the default menu
There's a new menu layout in this version of the software. It was
implemented as a plugin in 0.9.x to avoid clashes with existing themes,
but we're going to break that compatibility in this version, so we're just going for it.

This change involved moving all the changes in NewMenuPlugin into the
default code that was calling it. In addition, since
accountsettingsaction and connectsettingsaction differed only by menu,
I removed them, changed all references to them to the settingsmenu, and moved
the combined nav to its own class.

Let's put that episode behind us.

The CSS shim that was loaded by NewMenuPlugin for certain themes and certain actions
was removed.
2011-01-23 12:35:35 -05:00
Evan Prodromou
b72fe00ae3 remove boilerplate from NewMenuPlugin 2011-01-23 12:03:28 -05:00
Evan Prodromou
e53793edf4 make 'admin' a safe user name
'admin' is a pretty common username that people try when installing;
it was blacklisted because all of our admin panels were at /admin/*,
which would conflict with the admin user's namespace.

Changed the location of all admin panels to /panel/*, blacklisted the
nickname 'panel', and allowed 'admin'. Tested with a fresh install;
seems to work great.
2011-01-23 10:18:35 -05:00
Siebrand Mazeland
4642b024cc Localisation updates from http://translatewiki.net. 2011-01-22 20:17:19 +01:00
Brion Vibber
1f4b63d533 Add email field to Twitter registration form; needed when RequireValidatedEmail plugin is present.
Since Twitter doesn't provide email address back to us here, we only prefill the field if we have an invite.
2011-01-20 17:02:34 -08:00
Brion Vibber
06d895ee67 Add email field on openid registration; needed to register if RequireValidatedEmail plugin is also present. 2011-01-20 16:56:48 -08:00
Brion Vibber
ddde99cd89 Event hook points needed for recaptcha on facebook login form (untested, but should be legit -- same adds as openid & twitter reg forms) 2011-01-20 15:55:36 -08:00
Brion Vibber
c1e4be6ab9 Event hook points needed to run Recaptcha on Twitter registration 2011-01-20 15:49:57 -08:00
Brion Vibber
7a9040e360 Fix inconsistent use of 'name' vs 'fullname' in tw_fields member variable 2011-01-20 15:47:51 -08:00
Brion Vibber
7dc9d9c1fe Add Start/EndRegistrationData event hooks in finishopenidlogin: allows recaptcha to add its captcha display to the form (checked since addition of StartRegistrationTry) 2011-01-20 15:40:59 -08:00
Brion Vibber
6fa0bea76d Merge branch '0.9.x' into testing 2011-01-20 15:12:57 -08:00
Brion Vibber
6455461c19 Merge branch 'master' into 0.9.x 2011-01-20 15:08:31 -08:00
Evan Prodromou
edeaf8a2f8 new group message layout 2011-01-20 16:08:22 -05:00
Brion Vibber
7c3f820ff0 Ticket #2999: RequireValidatedEmail plugin now also prevents group creation by unvalidated users. 2011-01-20 13:05:58 -08:00
Siebrand Mazeland
03acf301ba Localisation updates from http://translatewiki.net. 2011-01-20 21:12:51 +01:00
Evan Prodromou
4618641da2 data structures 2011-01-19 18:31:07 -05:00
Brion Vibber
963e7576f2 Merge branch 'testing' into moveaccount 2011-01-19 10:41:14 -08:00
Evan Prodromou
4c4d63ee16 Merge branch 'testing' into privategroup 2011-01-19 10:13:47 -05:00
Evan Prodromou
deffcc1442 non-working version of private groups 2011-01-18 16:55:51 -05:00
Brion Vibber
b502755978 SubMirror: add mirrored feeds count & management link to stats section when showing your own profile sidebar. 2011-01-18 13:35:36 -08:00
Brion Vibber
56e2bc10d9 Cleanup stray PHP 4-style references in hook calls for navigation bars. We can't replace the live action from here, and don't need a reference to keep the object mutable. Dumping the references helps ensure we don't end up getting errors when things calling the hooks might forget to use the reference and the PHP error reporting settings expose this fact at us. 2011-01-18 12:34:27 -08:00
Brion Vibber
d0d1257d99 SubMirror: switch the mirror setup tab from account settings to subscriptions/groups/invites area 2011-01-18 12:34:04 -08:00
Brion Vibber
ea31051401 TwitterBridge fix: merge down remaining 64-bit Snowflake ID fixes for twitterstatusfetcher.php from 0.9.x
Original fixes in c169dcb5221cf3dd452c291bf97374bb459cc5b9; didn't get merged in 39cad55711 because the code had been broken out to another file, but manual merge went smooth.

These affect twitterstatusfetcher.php on all 32-bit installs and some 64-bit installs (depending on whether the version of the JSON library reads the large numbers as long or double internally). 64-bit bug is harder to see as it tends to manifest as off-by-one due to losing a bit of precision off the end.
2011-01-18 11:08:32 -08:00
Evan Prodromou
2a59453d4c Merge branch 'testing' into moveaccount 2011-01-17 17:34:03 -05:00
Evan Prodromou
a3c08faddd Erroneous code ensuring Webfinger accounts
Ostatus_profile::ensureProfileURI() was accidentally falling through to
the default switch case, and was also calling common_log() incorrectly.
2011-01-17 17:32:44 -05:00
Evan Prodromou
a2aa87fbff OStatusPlugin does discovery in Profile::fromURI() 2011-01-17 15:45:03 -05:00
Evan Prodromou
0fa57948f2 move linkheader.php to core 2011-01-16 17:15:26 -05:00
Evan Prodromou
7d1f609bf0 Move discovery library from OStatus plugin to core 2011-01-16 17:15:26 -05:00
Siebrand Mazeland
f1820459a8 Localisation updates from http://translatewiki.net. 2011-01-15 01:30:01 +01:00
Siebrand Mazeland
89727549a6 Localisation updates from http://translatewiki.net. 2011-01-15 00:47:49 +01:00
Siebrand Mazeland
b59bc2f48b Add translator comments. 2011-01-15 00:31:26 +01:00
Siebrand Mazeland
2460301d24 Add punctuation for consistency. 2011-01-14 21:53:01 +01:00
Evan Prodromou
5c25364141 remove extraneous <dl> and <dt> tags 2011-01-14 15:36:06 -05:00
Siebrand Mazeland
380ca7187c Localisation updates from http://translatewiki.net. 2011-01-14 12:10:05 +01:00
Siebrand Mazeland
9da9504823 Fix typo in extension description. 2011-01-14 12:07:57 +01:00
Evan Prodromou
f9b2feb7f5 Merge branch '0.9.x' into 1.0.x
Conflicts:
	README
2011-01-12 18:05:56 -05:00
Evan Prodromou
906f2ed023 Merge remote branch 'gitorious/0.9.x' into 0.9.x 2011-01-10 14:59:51 -05:00
Evan Prodromou
7ca57e32aa Merge remote branch 'gitorious/testing' into testing 2011-01-10 14:59:07 -05:00
Evan Prodromou
5d43923941 remove help link; Everyone => Public; Logo goes home 2011-01-07 19:27:59 -05:00
Evan Prodromou
16cf7d8d40 Show some menu fixup for settings for some themes 2011-01-07 19:22:27 -05:00
Evan Prodromou
66ed9c7f30 change 'Everyone' to 'Public' 2011-01-07 18:57:34 -05:00
Evan Prodromou
9af5040693 combine account and connect menus 2011-01-07 18:56:18 -05:00
Brion Vibber
36711f305a Ticket #1968: fix favoriting, reply when using InfiniteScroll 2011-01-06 16:53:39 -08:00
Brion Vibber
f97380fdb5 Fix regression in last year's update of InfiniteScroll -- having debug off caused breakage due to bad code interpreting every variable as a selector, and jQuery then failing when passed 'false'.
Note that the current version of the infinitescroll jquery plugin fixes this, but I'm not updating to it because the code's been altered from the upstream version, apparently to stop it from actually working as infinite scroll. WTF? :)
2011-01-06 16:36:57 -08:00
Brion Vibber
7ec456198a Ticket #2732: add some regression tests for groups to OStatus remote-tests.php
Note that these tests won't pass on master branch yet as the join/leave don't work, and there's a bug in Activity parsing which prevents interop between new feeds and old remote subscribers (both fixed in this branch).
2011-01-06 15:13:38 -08:00
Zach Copley
77eda41030 Added Start/EndRegistrationTry events to Facebook Bridge's user registration 2011-01-06 12:15:59 -08:00
Brion Vibber
1d15145993 Salmon signature checks on incoming slaps now check both old and new signature formats. 2011-01-06 00:01:42 +00:00
Brion Vibber
437ac120b0 Outgoing Salmon slaps now use the corrected signature format; if the first hit is rejected with an HTTP error, we try again with the old format.
(This is not 100% ideal; possibly should try to distinguish between server errors and rejections, etc.)
2011-01-05 23:54:16 +00:00
Zach Copley
f3d48d2dfe Add README with intallation/upgrade instructions to the Facebook Bridge plugin 2011-01-05 15:34:10 -08:00
Brion Vibber
946a4ac17b Add test cases for internal change in Salmon signing; fix for the new code.
Updated sig passes Tuomas's verifier, which is a good sign
2011-01-05 23:26:39 +00:00
Brion Vibber
e25c34a2b6 Salmon slap / magicsig test script
Given a notice in the local system, we package it up as an Atom entry and MagicSig it up.
We run the magicenv verification on it locally to make sure our own functions can decode it.
Optionally with --verify we can send to Tuomas Koski's verification test service (not sure if this is working 100%)
If given --slap= with a target Salmon endpoint, we'll sent it on and see if it liked it. (Note that StatusNet will reject if there's not a relevant mention, but will report acceptance for dupes so you can use a message that's already been delivered as a test.)
2011-01-05 14:27:53 -08:00
Brion Vibber
51d1535f15 Added doc comments on Salmon magicsig-related stuff to help in figuring out what's going on 2011-01-05 14:05:59 -08:00
Brion Vibber
d0d39b51b8 Fixes for RegisterThrottle plugin: alt registration methods (OpenID, FBConnect, Twitter) weren't triggering the throttle check or recording of IPs.
Added StartRegistrationTry/EndRegistrationTry calls into those three, and moved the actual recording hook to EndUserRegister which is guaranteed to be called from User::register (so we don't need to worry about other auth methods forgetting to call the other UI-code hooks).
2011-01-05 12:28:02 -08:00
Evan Prodromou
75dd361d29 move profile to subgroupnav 2011-01-05 11:24:24 -08:00
Evan Prodromou
b1e42115da new menu layout plugin 2011-01-04 19:32:36 -08:00
Evan Prodromou
3dcf8f1ef6 change bookmark-info from a <p> to a <div> 2011-01-04 13:10:32 -08:00
Brion Vibber
ae59046b1e Bookmark plugin: tweak post-upload success message to distinguish between "already done" (UnQueueManager) and "started, should finish eventually" (other queue manager) 2010-12-31 12:42:26 -08:00
Brion Vibber
3368c33be7 Bookmark plugin: fix for delicious import with queues enabled
We were passing DOM nodes directly into the queues for the final bookmark import stage; unfortunately these don't actually survive serialization.
Moved the extraction of properties from the HTML up to the first-stage handler, so now we don't have to worry about moving DOM nodes from one handler to the next. Instead passing an associative array of properties, which is fed into the Bookmark::saveNew by the per-bookmark handler.
2010-12-31 12:33:51 -08:00
Brion Vibber
fedfde9bbb Bookmark plugin: fixes for bad DOM element nesting in delicious import data
delicious bookmark exports use the godawful HTML bookmark file format that ancient versions of Netscape used (and has thus been the common import/export format for bookmarks since the dark ages of the web :)
This arranges bookmark entries as an HTML definition list, using a lot of implied close tags (leaving off the </dt> and </dd>).
DOMDocument->loadHTML() uses libxml2's HTML mode, which generally does ok with muddling through things but apparently is really, really bad about handling those implied close tags.

Sequences of adjacent <dt> elements (eg bookmark without a description, followed by another bookmark "<dt><dt>"), end up interpreted as nested ("<dt><dt></dt></dt>") instead of as siblings ("<dt></dt><dt></dt>").
The first round of code tried to resolve the nesting inline, but ended up a bit funky in places.
I've replaced this with a standalone run through the data to re-order the elements, based on our knowing that <dt> and <dd> cannot directly contain one another; once that's done, our main logic loop can be a bit cleaner. I'm not 100% sure it's doing nested sublists correctly, but these don't seem to show up in delicious export (and even if they do, with the way we flatten the input it shouldn't make a difference).

Also fixed a clearer edge case where some bookmarks didn't get imported when missing descriptions.
2010-12-31 12:09:54 -08:00
Brion Vibber
5687531848 Bookmark plugin: graceful error out for failure to import a delicious bookmark due to it being already bookmarked 2010-12-31 12:09:15 -08:00