Commit Graph

162 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
Evan Prodromou
5dfc9e1b18 Generated an extra class on bookmark notice <li>s 2010-12-30 16:57:28 -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
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
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
4a9a5076ff Web UI for importing delicious backup files 2010-12-29 13:51:59 -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
821770966b Page with a list of notices that link to an URL 2010-12-28 12:58:10 -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
4465724ed3 return saved notice to AtomPub for Bookmarks 2010-12-27 22:16:34 -08:00
Evan Prodromou
7b9ea62259 Make AtomPub work for bookmarks 2010-12-27 22:09:29 -08:00
Evan Prodromou
141b4b67b3 Better UI for bookmark popup 2010-12-27 12:57:03 -08:00
Evan Prodromou
45b2059cd8 better layout for single-bookmark page 2010-12-27 12:08:55 -08:00
Evan Prodromou
29103f5d0e send and receive bookmarks by Salmon 2010-12-27 11:29:16 -08:00
Evan Prodromou
4777c927ad Fix bookmark replies handling so doesn't overwrite 2010-12-27 09:14:11 -08:00
Evan Prodromou
14113b267e replace call to protected Ostatus_profile method 2010-12-26 21:38:28 -08:00
Evan Prodromou
bf75119b3c Fix bugs in BookmarkPlugin 2010-12-26 21:25:26 -08:00
Evan Prodromou
7d56f1cd19 Some fixes from debugging of bookmark plugin URI foramt
Tightened up the URI format, fixed some auto-loading issues,
and forced the url_crc32 column to be unsigned.
2010-12-26 21:11:27 -08:00
Evan Prodromou
ca28140107 remove debugging outputter from delicious backup importer 2010-12-26 21:10:54 -08:00
Evan Prodromou
ea1676cb0a UTC only and tighter date format for showbookmark 2010-12-26 21:10:23 -08:00
Evan Prodromou
4048d1ec3d Radical differences in Bookmark storage
Had some problems with PuSH and Salmon use of Bookmarks; they were
being required to generate Atom versions of the bookmark _before_ the bookmark was saved.

So, I reversed the order of how things are saved, and associate notices and bookmarks
by URI rather than notice_id.
2010-12-24 20:34:15 -08:00
Evan Prodromou
67bde86f7c accept bookmarks over PuSH 2010-12-23 09:42:42 -08:00
Evan Prodromou
ae64963d71 Reformat bookmark output 2010-12-22 15:24:13 -08:00
Evan Prodromou
1faaaed72b Move bookmark CSS to its own file 2010-12-22 13:08:07 -08:00
Evan Prodromou
73dccdd7f5 Notice_bookmark::saveNew() takes a Profile argument 2010-12-22 12:35:45 -05:00
Evan Prodromou
6ff8977243 Bookmarklet for Bookmark plugin 2010-12-21 14:46:31 -05:00
Evan Prodromou
0665beec58 Bookmarklet for new bookmarks
Override the bookmarklet help page to add a new popup.
2010-12-21 14:43:03 -05:00
Evan Prodromou
6670dd8450 Layout on the bookmark form 2010-12-21 12:25:23 -05:00
Evan Prodromou
ccb290cb68 Break up delicious import into a queue manager by bookmark 2010-12-21 11:09:01 -05:00
Evan Prodromou
b8a182dc44 PHPCS Notice_bookmark 2010-12-21 10:32:35 -05:00
Evan Prodromou
d9ff466d2c PHPCS newbookmark 2010-12-21 10:22:50 -05:00
Evan Prodromou
907f1ad633 PHPCS importbookmarks 2010-12-21 10:20:49 -05:00
Evan Prodromou
14babfb900 PHPCS BookmarkForm 2010-12-21 10:16:53 -05:00
Evan Prodromou
c96faf065d PHPCS BookmarkPlugin.php 2010-12-21 10:13:20 -05:00
Evan Prodromou
331639d6e4 Code standards for deliciousbackupimporter.php 2010-12-21 09:42:44 -05:00
Evan Prodromou
704a20f58b some corrections for double-posting of bookmarks 2010-12-20 13:39:07 -05:00
Evan Prodromou
770efece83 don't reinsert existing bookmark 2010-12-20 13:38:24 -05:00
Evan Prodromou
15f4e0a9f0 reindent BookmarkPlugin 2010-12-20 13:35:30 -05:00
Evan Prodromou
d8de285d4e reindent importbookmarks.php 2010-12-20 13:35:21 -05:00
Evan Prodromou
510e79a96c Starting point for adding bookmarks 2010-12-20 12:04:02 -05:00
Evan Prodromou
cab7522476 Notice_bookmark::saveNew() takes options arg 2010-12-20 12:03:33 -05:00
Evan Prodromou
cb76465cfa Better output for activities and HTML in BookmarkPlugin 2010-12-19 10:18:33 -05:00
Evan Prodromou
d6030714f3 Use Notice_bookmark::saveNew() from NewbookmarkAction 2010-12-19 10:18:07 -05:00
Evan Prodromou
cee93dd15d Move notice bookmark creation to Notice_bookmark::saveNew() 2010-12-19 10:17:23 -05:00
Evan Prodromou
fce2078dfb code done on debugging in bookmarks 2010-12-18 17:21:40 -05:00
Evan Prodromou
6b7931bcc8 delete bookmark stuff when deleting notice 2010-12-18 02:39:44 -05:00
Evan Prodromou
563f067508 save title and description of bookmark 2010-12-18 02:39:24 -05:00
Evan Prodromou
85d54cbdb7 save title and description of bookmark 2010-12-18 02:36:13 -05:00
Evan Prodromou
f641034471 First pass at storing bookmarks
Form for saving bookmarks that looks like the delicious.com form.

Save a new notice with the right text, but attach a new notice_bookmark
table which marks this as a bookmark. Tags, URLs are kept the same.
2010-12-18 02:27:14 -05:00