{"id":6066,"date":"2024-07-07T14:52:29","date_gmt":"2024-07-07T13:52:29","guid":{"rendered":"https:\/\/www.untergeek.de\/de\/?p=6066"},"modified":"2024-07-07T21:03:52","modified_gmt":"2024-07-07T20:03:52","slug":"some-code-to-rescue-your-diigo-bookmarks","status":"publish","type":"post","link":"https:\/\/www.untergeek.de\/de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/","title":{"rendered":"Wenn&#8217;s mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo"},"content":{"rendered":"<div class=\"shariff\" data-title=\"Wenn&#8217;s mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo\" data-info-url=\"http:\/\/ct.de\/-2467514\" data-backend-url=\"https:\/\/www.untergeek.de\/wp-content\/plugins\/shariff-sharing\/backend\/index.php\" data-temp=\"\/tmp\" data-ttl=\"60\" data-service=\"gftr\" data-services='[\"googleplus\",\"facebook\",\"twitter\",\"reddit\",\"info\"]' data-image=\"\" data-url=\"https:\/\/www.untergeek.de\/de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/\" data-lang=\"de\" data-theme=\"colored\" data-orientation=\"horizontal\"><\/div><p>Das ist so eine dieser Sachen, wenn du merkst, du hast einen Job zu erledigen, und denkst: schreibe ich schnell ein paar Zeilen Code, die das f\u00fcr mich erledigen. Zack, hast du ein neues Projekt am Hals. Aber es hat Fr\u00fcchte getragen: ein wenig in Python-Routinen gegossene Hilfe, um Lesezeichen aus dem alternden Bookmarking-Dienst Diigo zu retten.<\/p>\n<ul>\n<li>Link to <a href=\"https:\/\/github.com\/untergeekDE\/nextcloud-diigo-bookmarks\">Github repository nextcloud-diigo-bookmarks<\/a><\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6072\" src=\"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif\" alt=\"Diigo banner with a cartoon planet with two astronauts, animated - to show a space desaster \" width=\"600\" height=\"254\" \/><\/a><\/p>\n<p><em>Animation created with Luma Labs Dream Machine<\/em><\/p>\n<p><!--more--><\/p>\n<p><a href=\"https:\/\/www.diigo.com\" target=\"_blank\" rel=\"noopener\">Diigo<\/a> war damals, eine Offenbarung. So um 2010 war das, als ich anfing, den &#8222;Social Bookmarking&#8220;-Dienst produktiv einzusetzen; bis dahin hatte ich delicio.us genutzt, aber der ging unter, und Diigo war viel besser. Also war ich irgendwann auch zahlender Kunde; Diigo war&#8217;s wert. Seitdem habe ich also einige tausend Internet-Fundst\u00fccke abgelegt, verschlagwortet, mit Notizen und Anmerkungen versehen.<\/p>\n<p>Aber der Dienst ist eine Sackgasse, und noch dazu eine, in der es sich immer ungem\u00fctlicher anf\u00fchlt. Zum einen ist das ganze Konzept &#8222;Social Bookmarking&#8220; aus der Zeit gefallen &#8211; ist der Nutzen, den ein paar hypothetische Follower aus meinen Bookmarks haben, das Privatsph\u00e4ren-Risiko wert? Und dann erscheint es mir auch ein wenig unangemessen, dass all diese Arbeit als Trainingsmaterial f\u00fcr jede beliebige KI herumliegt.<\/p>\n<p>Der zweite, gewichtigere Grund, Diigo zu verlassen: Der Dienst wird unzuverl\u00e4ssig. Bookmarks sind nicht wiederzufinden, auf unterschiedlichen Ger\u00e4ten ist die Datenbank auf unterschiedlichem Stand. Also f\u00fcrchte ich, dass der Dienst keine Zukunft hat, auch wenn er Mitte 2024 noch l\u00e4uft. Gerade so.<\/p>\n<h2>Mit der offiziellen API geht alles seinen sozialistischen Gang<\/h2>\n<p>Es gibt ja Hoffnung &#8211; in Form einer M\u00f6glichkeit, \u00fcber die Diigo-Website ein Export-CSV zu erzeugen, und \u00fcber eine offizielle API-Schnittstelle. Die CSV-Dateien kann man auch wieder importieren; die fr\u00fchesten meiner Codeschnipsel tun genau das und schieben die Bookmarks in eine Nextcloud-Bookmark-Installation. Einziger Wermutstropfen ist, dass dabei das Erstellungsdatum verloren geht, aber die Inhalte sind schon mal gesichert.<\/p>\n<p>Bei Diigo l\u00f6schen &#8211; oder wenigstens auf privat setzen &#8211; m\u00fcsste ich sie immer noch, und auch wenn es auf der Website M\u00f6glichkeiten zum &#8222;bulk edit&#8220; gibt, ist mir das bei einigen tausend Bookmarks zu viel Handarbeit. Automate the boooring stuff &#8211; ein Job f\u00fcr ein Python-Skript und die Diigo-API.<\/p>\n<p>Die Diigo-API ist dann wiederum <a href=\"https:\/\/www.diigo.com\/api_dev\" target=\"_blank\" rel=\"noopener\">lausig dokumentiert<\/a> und strahlt starke &#8222;Ich wei\u00df, ist noch nicht fertig, mach ich sp\u00e4ter&#8220;-Vibes ab. Man muss sich ein API-Token generieren lassen, das man zusammen mit Nutzernamen und Passwort einsetzen muss, und bekommt daf\u00fcr eigentlich nur zwei Funktionen: Bookmark lesen, und Bookmark anlegen\/\u00fcberschreiben.<\/p>\n<p><a href=\"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6069\" src=\"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13-560x114.png\" alt=\"Failed to delete bookmark 'Nowcasting fatal COVID\u201019 infections on a regional level in Germany - Schneble - - Biometrical Journal - Wiley Online Library' (https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/bimj.202000143). Status code: 400 API Message: {\" width=\"560\" height=\"114\" srcset=\"https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13-560x114.png 560w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13-200x41.png 200w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13-768x156.png 768w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13-1536x312.png 1536w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13-500x102.png 500w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.39.13.png 1742w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a><\/p>\n<p>Nach etwas Herumexperimentieren habe ich eine dritte Funktion gefunden, die die L\u00f6sung meiner Aufgabe \u00fcberhaupt erst erm\u00f6glicht: \u00dcber einen HTTP-DELETE-Aufruf der API kann man Bookmarks auch l\u00f6schen. Das funktioniert, aber ist massiv begrenzt: Etwa ein Dutzend Aufrufe erlaubt die API, dann zwingt sie einen zu ein paar Minuten Wartezeit, ehe man nochmal zehn Bookmarks l\u00f6schen kann, dann wieder warten&#8230; mein erstes Skript wurde davon immer wieder abgeschossen.<\/p>\n<h2>Gibt&#8217;s da nicht was besseres?<\/h2>\n<p>Nun, es gibt einen besseren Weg, zumindest f\u00fcr einige Aufgaben. Die Diigo-Webseite hat ein paar Methoden mehr zur Verf\u00fcgung, als sie die offizielle API bereitstellt. Sie nutzt zus\u00e4tzliche Aufruf-Punkte, und die kann sich auch ein externes Skript (wie meines) zunutze machen.<\/p>\n<p><a href=\"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6070\" src=\"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39-560x338.png\" alt=\"Browser tools, network tab; showing the diigo.com page using a \/interact_api\/load_user_items endpoint to get bookmarks\" width=\"560\" height=\"338\" srcset=\"https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39-560x338.png 560w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39-200x121.png 200w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39-768x463.png 768w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39-1536x926.png 1536w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39-2048x1235.png 2048w, https:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/Bildschirmfoto-2024-07-07-um-14.47.39-497x300.png 497w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a><\/p>\n<p>Sie macht auch die Legitimierung der API-Aufrufe erst ein wenig schwieriger und dann sehr viel leichter. Sie nutzt n\u00e4mlich kein API-Token, sondern die Session-Cookies aus einer Browseranmeldung. Wenn man sich also einmal f\u00fcr das Skript im Browser angemeldet und das nervige Klicke-alle-Ampeln-w\u00e4hrend-ich-sie-durchrotiere-CAPTCHA gel\u00f6st hat, kann man diese API-Aufrufe nach Herzenslust und anscheinend ohne Mengenbeschr\u00e4nkung nutzen.<\/p>\n<h2>Schnell darfst du trotzdem nicht via API-Aufruf<\/h2>\n<p>Kleine zus\u00e4tzliche Gemeinheit: Der Aufruf, der ein Lesezeichen anlegt oder \u00fcberschreibt, muss vorget\u00e4uscht bekommen, dass man ihn von einem Browser aus t\u00e4tigt, dann funktioniert er auch. Leider reicht das nicht f\u00fcr drei weitere Funktionen, die die Sache enorm beschleunigen w\u00fcrden: delete_b, mark_readed und convert_mode &#8211; eine ganze Liste von Bookmarks auf einen Schlag bearbeiten bzw. l\u00f6schen.<\/p>\n<p>Diese Aufrufe erzeugen eine &#8222;403 Forbidden&#8220;-Meldung, und ich kriege sie bislang nicht zum Laufen. Solange das nicht funktioniert, muss mein Programm sich (und den Nutzer) durch 100 Einzelaufrufe qu\u00e4len, wo es einen API-Call f\u00fcr 100 Bookmarks ausl\u00f6sen k\u00f6nnte. Ich habe mal eine Mail geschickt; wenn ich Antwort kriege, erg\u00e4nze ich.<\/p>\n<h2>Was jetzt schon geht<\/h2>\n<p>Im Repository findet sich ein Python-Skript, das nach Aufruf mit<\/p>\n<pre>python main.py<\/pre>\n<p>\u00fcber textbasierte Auswahl-Men\u00fcs folgende Funktionen zur Verf\u00fcgung stellt<\/p>\n<ul>\n<li>Setze alle Diigo bookmarks auf privat<\/li>\n<li>Exportieren, L\u00f6schen und Reimportieren nach Nextcloud<\/li>\n<li>Import und Export von CSV-Dateien nach Nextcloud<\/li>\n<li>CSV-Dateien checken<\/li>\n<\/ul>\n<h2>&#8230;und der hei\u00dfe Schei\u00df kommt sp\u00e4ter<\/h2>\n<p>Nat\u00fcrlich habe ich dr\u00fcber nachgedacht, wie mir KI helfen kann, meine Lesezeichen besser zu verwalten, und nat\u00fcrlich k\u00f6nnte ein Sprachmodell helfen, Bookmarks zu erg\u00e4nzen, besser zu vertaggen, genauer zu beschreiben &#8211; und vielleicht eines Tages sogar ein Embedding daf\u00fcr in eine Vektordatenbank zu schreiben, damit man mit einem KI-Chatbot \u00fcber die passenden Lesezeichen diskutieren kann. Das m\u00fcsste nach meinen ersten Versuchen auch mit einem lokalen Sprachmodell wie <a href=\"https:\/\/ollama.com\/library\/aya\" target=\"_blank\" rel=\"noopener\">Aya<\/a> oder <a href=\"https:\/\/ollama.com\/library\/gemma2\">Gemma2:9b<\/a> ganz passabel gehen.<\/p>\n<p>Ein andermal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das ist so eine dieser Sachen, wenn du merkst, du hast einen Job zu erledigen, und denkst: schreibe ich schnell ein paar Zeilen Code, die das f\u00fcr mich erledigen. Zack, hast du ein neues Projekt am Hals. Aber es hat &hellip; <a href=\"https:\/\/www.untergeek.de\/de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":496,"footnotes":""},"categories":[7,9],"tags":[236,315],"class_list":["post-6066","post","type-post","status-publish","format-standard","hentry","category-digitales-leben","category-maschinelles","tag-social-bookmarking","tag-tools"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wenn&#039;s mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.untergeek.de\/de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:locale:alternate\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wenn&#039;s mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo\" \/>\n<meta property=\"og:description\" content=\"Sometimes, you notice you have some digital housekeeping to do, so you think: easy, I&#8217;ll just write a couple of lines of code to do the job. Bad idea &#8211; this will give you another project to abandon in no &hellip; Weiterlesen &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.untergeek.de\/de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/\" \/>\n<meta property=\"og:site_name\" content=\"untergeek\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-07T13:52:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-07T20:03:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif\" \/>\n<meta name=\"author\" content=\"untergeek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/untergeekDE\" \/>\n<meta name=\"twitter:site\" content=\"@untergeekDE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"untergeek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/\"},\"author\":{\"name\":\"untergeek\",\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/#\\\/schema\\\/person\\\/fa2cb1805e290c4d85f61db3985e73f1\"},\"headline\":\"Wenn&#8217;s mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo\",\"datePublished\":\"2024-07-07T13:52:29+00:00\",\"dateModified\":\"2024-07-07T20:03:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/\"},\"wordCount\":1916,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/#\\\/schema\\\/person\\\/fa2cb1805e290c4d85f61db3985e73f1\"},\"image\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/ezgif-7-34e23da0fc.gif\",\"keywords\":[\"Social Bookmarking\",\"Tools\"],\"articleSection\":[\"Digitales Leben\",\"Maschinelles\"],\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/\",\"url\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/\",\"name\":\"Wenn's mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/ezgif-7-34e23da0fc.gif\",\"datePublished\":\"2024-07-07T13:52:29+00:00\",\"dateModified\":\"2024-07-07T20:03:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/ezgif-7-34e23da0fc.gif\",\"contentUrl\":\"http:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/ezgif-7-34e23da0fc.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/2024\\\/07\\\/some-code-to-rescue-your-diigo-bookmarks\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.untergeek.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Some code to rescue your Diigo bookmarks\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/#website\",\"url\":\"https:\\\/\\\/www.untergeek.de\\\/\",\"name\":\"untergeek\",\"description\":\"promoting technological serendipity since 1968\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/#\\\/schema\\\/person\\\/fa2cb1805e290c4d85f61db3985e73f1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.untergeek.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de-DE\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/#\\\/schema\\\/person\\\/fa2cb1805e290c4d85f61db3985e73f1\",\"name\":\"untergeek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/untergeeklet.png\",\"url\":\"https:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/untergeeklet.png\",\"contentUrl\":\"https:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/untergeeklet.png\",\"width\":64,\"height\":64,\"caption\":\"untergeek\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.untergeek.de\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/untergeeklet.png\"},\"description\":\"Early digital immigrant. Father. Maker. Tinkerer. Serendipist. Journalist. Synth nerd.\",\"sameAs\":[\"http:\\\/\\\/www.untergeek.de\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/untergeekDE\",\"https:\\\/\\\/www.youtube.com\\\/@untergeekDE\"],\"url\":\"https:\\\/\\\/www.untergeek.de\\\/de\\\/author\\\/untergeek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wenn's mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.untergeek.de\/de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/","og_locale":"de_DE","og_type":"article","og_title":"[:en]Some code to rescue your Diigo bookmarks[:de]Wenn's mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo[:] - untergeek","og_description":"Sometimes, you notice you have some digital housekeeping to do, so you think: easy, I&#8217;ll just write a couple of lines of code to do the job. Bad idea &#8211; this will give you another project to abandon in no &hellip; Weiterlesen &rarr;","og_url":"https:\/\/www.untergeek.de\/de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/","og_site_name":"untergeek","article_published_time":"2024-07-07T13:52:29+00:00","article_modified_time":"2024-07-07T20:03:52+00:00","og_image":[{"url":"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif","type":"","width":"","height":""}],"author":"untergeek","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/untergeekDE","twitter_site":"@untergeekDE","twitter_misc":{"Verfasst von":"untergeek","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#article","isPartOf":{"@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/"},"author":{"name":"untergeek","@id":"https:\/\/www.untergeek.de\/#\/schema\/person\/fa2cb1805e290c4d85f61db3985e73f1"},"headline":"Wenn&#8217;s mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo","datePublished":"2024-07-07T13:52:29+00:00","dateModified":"2024-07-07T20:03:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/"},"wordCount":1916,"commentCount":2,"publisher":{"@id":"https:\/\/www.untergeek.de\/#\/schema\/person\/fa2cb1805e290c4d85f61db3985e73f1"},"image":{"@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#primaryimage"},"thumbnailUrl":"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif","keywords":["Social Bookmarking","Tools"],"articleSection":["Digitales Leben","Maschinelles"],"inLanguage":"de-DE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/","url":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/","name":"Wenn's mal wieder l\u00e4nger dauert: Code f\u00fcr den Bookmarking-Dienst Diigo","isPartOf":{"@id":"https:\/\/www.untergeek.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#primaryimage"},"image":{"@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#primaryimage"},"thumbnailUrl":"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif","datePublished":"2024-07-07T13:52:29+00:00","dateModified":"2024-07-07T20:03:52+00:00","breadcrumb":{"@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#primaryimage","url":"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif","contentUrl":"http:\/\/www.untergeek.de\/wp-content\/uploads\/2024\/07\/ezgif-7-34e23da0fc.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/www.untergeek.de\/2024\/07\/some-code-to-rescue-your-diigo-bookmarks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.untergeek.de\/"},{"@type":"ListItem","position":2,"name":"Some code to rescue your Diigo bookmarks"}]},{"@type":"WebSite","@id":"https:\/\/www.untergeek.de\/#website","url":"https:\/\/www.untergeek.de\/","name":"untergeek","description":"promoting technological serendipity since 1968","publisher":{"@id":"https:\/\/www.untergeek.de\/#\/schema\/person\/fa2cb1805e290c4d85f61db3985e73f1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.untergeek.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de-DE"},{"@type":["Person","Organization"],"@id":"https:\/\/www.untergeek.de\/#\/schema\/person\/fa2cb1805e290c4d85f61db3985e73f1","name":"untergeek","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/www.untergeek.de\/wp-content\/uploads\/2018\/11\/untergeeklet.png","url":"https:\/\/www.untergeek.de\/wp-content\/uploads\/2018\/11\/untergeeklet.png","contentUrl":"https:\/\/www.untergeek.de\/wp-content\/uploads\/2018\/11\/untergeeklet.png","width":64,"height":64,"caption":"untergeek"},"logo":{"@id":"https:\/\/www.untergeek.de\/wp-content\/uploads\/2018\/11\/untergeeklet.png"},"description":"Early digital immigrant. Father. Maker. Tinkerer. Serendipist. Journalist. Synth nerd.","sameAs":["http:\/\/www.untergeek.de","https:\/\/x.com\/https:\/\/twitter.com\/untergeekDE","https:\/\/www.youtube.com\/@untergeekDE"],"url":"https:\/\/www.untergeek.de\/de\/author\/untergeek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/posts\/6066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/comments?post=6066"}],"version-history":[{"count":13,"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/posts\/6066\/revisions"}],"predecessor-version":[{"id":6082,"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/posts\/6066\/revisions\/6082"}],"wp:attachment":[{"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/media?parent=6066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/categories?post=6066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.untergeek.de\/de\/wp-json\/wp\/v2\/tags?post=6066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}