def post(self): duser = self.request.get('duser',None) iuser = self.request.get('iuser',None) ipass = self.request.get('ipass',None) dpass = self.request.get('dpass',None) logging.info('credentials delicious %s %s instapaper %s %s' % (duser, dpass, iuser, ipass)) if duser is None or iuser is None: logging.info('bad request ') self.response.out.write('Bad request!') return if '@yahoo' in duser: duser = duser[:duser.index('@')] logging.info('proposed screen name %s' %duser) auth_resp = 200 try: authen_url='https://www.instapaper.com/api/authenticate' values = {'username':iuser, 'password':ipass} data = urllib.urlencode(values) result = urlfetch.fetch( url=authen_url, payload=data, method=urlfetch.POST, headers={'Content-Type': 'application/x-www-form-urlencoded'}) auth_resp = result.status_code logging.info('response %s' % result.status_code) except: logging.info('instapaper authenticate error %s %s' % (sys.exc_info()[0], sys.exc_info()[1])) auth_resp = 404 successImport = DeliciousImporter.gql('WHERE instapaper_account = :1 and delicious_account = :2 and success = True', iuser, duser).get() if successImport is None: logging.info('initializing new import instapaper:%s delicious:%s' %(iuser, duser)) importStats=DeliciousImporter() importStats.instapaper_account=iuser importStats.instapaper_pass=ipass importStats.delicious_account=duser importStats.put() else: logging.info('repeating import delicious %s instapaper %s' %(iuser, duser)) if auth_resp == 200: taskqueue.add(queue_name='instapaper-import', url='/tools/import/delicious/task', params={'duser':duser, 'iuser':iuser, 'ipass':ipass}) resp='Import has been initialized, it can take a while. Try <a href="http://bit.ly/instaright" title="Instapaper Firefox addon">Instapaper Firefox addon</a>.' elif auth_resp == 403: logging.info('instapaper validation did not pass %s' %auth_resp) resp='Invalid Instapaper credentials.' else: logging.info('something is wrong w/ service') resp='Error encountered. Please try later!' self.response.out.write(resp)
def post(self): duser = self.request.get('duser',None) iuser = self.request.get('iuser',None) ipass = self.request.get('ipass',None) d_link='http://feeds.delicious.com/v2/json/%s' %duser logging.info('fetching felicious feed %s' %d_link) #dpass = self.request.get('dpass',None) json = None try: dta = urllib2.urlopen(d_link) json = simplejson.load(dta) except: logging.info('can\'t fetch url %s' % d_link) if json is not None: for j in json: logging.info('delicious link %s %s' %(j['d'], j['u'])) taskqueue.add(queue_name='instapaper-import', url='/tools/import/instapaper/task', params={'instauser': iuser, 'instapass':ipass,'url':j['u'], 'title':j['d']}) existing=DeliciousImporter.gql('where instapaper_account = :1 and delicious_account = :2', iuser, duser).get() existing.success=True existing.put()