Skip to content

Instantly share code, notes, and snippets.

@coolcodr
Forked from sdb/ril2ip.py
Created May 7, 2012 14:16
Show Gist options
  • Save coolcodr/2628023 to your computer and use it in GitHub Desktop.
Save coolcodr/2628023 to your computer and use it in GitHub Desktop.
copy bookmarks from Read It Later to Instapaper
#! /usr/bin/env python
"""
Script to copy all bookmarks from Read It Later to Instapaper.
See also http://readitlaterlist.com/api/docs/#get
and http://www.instapaper.com/api/simple
"""
import urllib, urllib2, json
import simplejson
import time
RIL_ENDPOINT = 'http://readitlaterlist.com/v2'
IP_ENDPOINT = 'http://www.instapaper.com/api'
def main(ril_api_key, ril_usr, ril_pwd, ip_usr, ip_pwd):
# fetch bookmarks from RIL as JSON
ril_query = urllib.urlencode({'username':ril_usr, 'password':ril_pwd,'apikey':ril_api_key,'state':'unread'})
ril_url = '%s/get?%s' %(RIL_ENDPOINT, ril_query)
print ril_url
f = urllib2.urlopen(ril_url)
bookmarks = json.loads(f.read())['list']
# import bookmarks into Instapaper
count = 0
for bm in bookmarks.values():
try:
ip_query = urllib.urlencode({'url':bm['url'],'title':bm['title'].encode('utf-8'), 'username':ip_usr, 'password':ip_pwd})
ip_url = '%s/add?%s' %(IP_ENDPOINT, ip_query)
urllib2.urlopen(ip_url)
count += 1
read_content = {"0":{"url":bm['url']}}
ril_query = urllib.urlencode({'username':ril_usr, 'password':ril_pwd,'apikey':ril_api_key,'read':simplejson.dumps(read_content)})
ril_url = '%s/send?%s' %(RIL_ENDPOINT, ril_query)
urllib2.urlopen(ril_url)
print ''''%s' copied successfully''' %bm['title']
time.sleep(1)
except Exception:
print 'Fail: %s' % bm['url']
print '%d bookmarks copied' %count
if __name__ == "__main__":
import sys
apply(main, sys.argv[1:])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment