Commit Graph

11463 Commits

Author SHA1 Message Date
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
Brion Vibber
80e2f4f529 Fix up edge case in nickname processing: overlong display forms should be rejected before normalization (storage of display forms will also have fields with limited length) 2010-12-30 17:11:16 -08:00
Evan Prodromou
5dfc9e1b18 Generated an extra class on bookmark notice <li>s 2010-12-30 16:57:28 -08:00
Evan Prodromou
66f6b2a342 Events to hook for NoticeListElement <li> generation 2010-12-30 16:57:05 -08:00
Evan Prodromou
5d7f5212f0 switch bookmark CSS classes to use dash instead of underscore 2010-12-30 16:54:01 -08:00
Evan Prodromou
7793d3b7ad Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-12-30 16:21:45 -08:00
Evan Prodromou
682e11bb8b don't show some bookmark elements if empty 2010-12-30 16:21:22 -08:00
Brion Vibber
b71a09a1a9 Tweak the post-form return on bookmarklet if we're not in a popup that we can close 2010-12-30 16:14:41 -08:00
Brion Vibber
b00a3cd4e4 Make sure the UUIDs are unique too :) 2010-12-30 13:37:05 -08:00
Brion Vibber
63c95484bd Update ActivityCreationTests for our switch away from the obsolete <activity:actor> 2010-12-30 13:21:59 -08:00
Evan Prodromou
6fc7e5b05b Use UUIDs for Bookmark unique ID
I was trying to generate URIs for Bookmarks based on (profile, crc32(url), created).

I failed at that. CRC32s are unsigned ints, and our schema code didn't like that.

On top of that, my code to encode and restore created timestamps was problematic.

So, I switched back to using a meaningless unique ID for Bookmarks.

One way to do this would be to use an auto-incrementing integer ID. However, we've been
kind of crabbed out a few times for exposing auto-incrementing integer IDs as URIs, so
I thought maybe using a random UUID would be a better way to do it.

So, this patch sets random UUIDs for URIs of bookmarks.
2010-12-30 13:21:14 -08:00
Evan Prodromou
3b5c3d2c84 UUID-generation tools 2010-12-30 12:15:34 -08:00
Evan Prodromou
c91b080a8e version 0.9.8dev 2010-12-29 16:18:43 -08:00
Evan Prodromou
3d62c1cf51 0.9.7alpha1 2010-12-29 16:15:57 -08:00
Evan Prodromou
d8219c07be update version to 0.9.7 2010-12-29 16:14:00 -08:00
Evan Prodromou
80191b56df Show <activity:subject> in Atom group notice feed
Version 0.9.6 and below of StatusNet assume anything in <author> is a
Person. So, we include an <activity:subject> element, which will be
checked first by those versions of the code, only for group feeds.

At some point we'll take this out, but it's useful for now.
2010-12-29 15:33:57 -08:00
Evan Prodromou
d3b10959f4 Merge branch '0.9.x' into noactor 2010-12-29 15:29:29 -08:00
Evan Prodromou
26afe79ed9 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x 2010-12-29 14:53:38 -08:00
Evan Prodromou
2d576aea30 don't distribute when restoring archived delicious bookmarks 2010-12-29 14:52:43 -08:00
Evan Prodromou
3fea4aba7f phpcs showbookmark.php 2010-12-29 14:24:30 -08:00
Evan Prodromou
f3999ab92d phpcs noticebyurl.php 2010-12-29 14:22:41 -08:00
Evan Prodromou
f5256eb028 phpcs importdelicious.php 2010-12-29 14:21:25 -08:00
Evan Prodromou
b00d113bb4 phpcs Bookmark.php 2010-12-29 14:17:32 -08:00
Evan Prodromou
10fa41454d phpcs BookmarkPlugin.php 2010-12-29 14:16:15 -08:00
Evan Prodromou
68f44dad82 Add link to delicious bookmark importer to profile settings 2010-12-29 14:02:31 -08:00
Evan Prodromou
48edbb3023 add hooks for the account-management tools 2010-12-29 14:02:04 -08:00
Evan Prodromou
4a9a5076ff Web UI for importing delicious backup files 2010-12-29 13:51:59 -08:00
Evan Prodromou
39cf2338c2 Bad method call in File_to_post 2010-12-29 13:28:32 -08:00
Evan Prodromou
db43195fbf fixup date handling in showbookmark for PHP 5.2 2010-12-28 23:36:25 +00:00
Evan Prodromou
dcd0e3ec7e show count of other bookmarks with link to stream 2010-12-28 13:45:24 -08:00
Evan Prodromou
d31397bd45 method to count notices linking to an URL 2010-12-28 13:44:49 -08:00
Evan Prodromou
6ab46c70f7 Delete file links when Notice is deleted 2010-12-28 13:44:18 -08:00
Evan Prodromou
a2000f889a Merge branch '0.9.x' into socialbookmark 2010-12-28 13:42:44 -08:00
Evan Prodromou
821770966b Page with a list of notices that link to an URL 2010-12-28 12:58:10 -08:00
Evan Prodromou
faf0081a8b Fixes from testing File::stream() 2010-12-28 12:57:31 -08:00
Evan Prodromou
bf4c5cb41a Stream of notices linking to an URL 2010-12-28 11:58:55 -08:00
Brion Vibber
90c7ff1983 Merge branch 'master' into 0.9.x 2010-12-28 11:37:38 -08:00
Brion Vibber
d3d9797496 Prevent group creation by silenced users.
* adds Right::CREATEGROUP
* logic in Profile::hasRight() checks for silencing
* NewgroupAction checks for the permission before letting you see or process the form in the UI
* User_group::register() logic does a low-level check on the specified initial group admin, and rejects creation if that user doesn't have the right; guaranteeing that API methods etc will also have this restriction applied sensibly.
2010-12-28 11:34:02 -08:00
Evan Prodromou
320e73a321 If notice has been deleted before, don't store URI again 2010-12-27 22:58:13 -08:00
Evan Prodromou
c8bbde69df import bookmarks from backups 2010-12-27 22:57:35 -08:00
Evan Prodromou
0a56e88a64 Don't double-insert a bookmark 2010-12-27 22:57:11 -08:00
Evan Prodromou
8814fb3822 Merge branch '0.9.x' into socialbookmark 2010-12-27 22:38:36 -08:00
Evan Prodromou
3bcfee906a document events for activity import 2010-12-27 22:37:34 -08:00
Evan Prodromou
c458bafaa1 pass through $idField and $createdField in Notice queries 2010-12-27 22:35:57 -08:00
Evan Prodromou
1996545947 add events for restoring activities 2010-12-27 22:28:20 -08:00
Evan Prodromou
4465724ed3 return saved notice to AtomPub for Bookmarks 2010-12-27 22:16:34 -08:00
Evan Prodromou
1cc8be4d8b Merge branch '0.9.x' into socialbookmark 2010-12-27 22:13:23 -08:00
Evan Prodromou
75e671774d Documentation for change in atompub events 2010-12-27 22:13:17 -08:00