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
Evan Prodromou
5dfc9e1b18
Generated an extra class on bookmark notice <li>s
2010-12-30 16:57:28 -08:00