def get(self): session = get_current_session() frob = self.request.get('frob') if not frob: self.response.out.write("no frob") return nickname = session.get("nickname", 0) if not nickname: self.response.out.write("no nickname") return userinfo = UserInfo.gql("WHERE nickname=:1", nickname).get() if not userinfo: self.response.out.write("no user") return flickr_api_key = userinfo.flickr_api_key flickr_api_secret = userinfo.flickr_api_secret flickr = flickrapi.FlickrAPI( flickr_api_key, flickr_api_secret, store_token=False) try: token = flickr.get_token(frob) e = TokenEntity.gql("WHERE nickname=:1", nickname).get() if not e: e = TokenEntity() e.username = nickname e.token = token e.put() #session['flickr_token'] = token except Exception as e: print "Unexpected error:", e.message self.redirect('/setting')
def post(self): nickname = self.request.get('nickname') password = self.request.get('password') confirmpassword = self.request.get('confirmpassword') if password != confirmpassword: self.response.out.write("Password not match") return userinfos = UserInfo.gql("WHERE nickname=:1",nickname) found = 0 for userinfo in userinfos: userinfo = UserInfo() userinfo.nickname = nickname userinfo.password = password userinfo.put() found = 1 break if found == 0: userinfo = UserInfo() userinfo.nickname = nickname userinfo.password = password userinfo.put() self.response.out.write("updated") self.redirect("login.html")
def post(self): nickname = self.request.get('nickname') password = self.request.get('password') userinfos = UserInfo.gql("WHERE nickname=:1", nickname) for userinfo in userinfos: if userinfo.password == password: session = get_current_session() session["nickname"] = nickname template_values = { 'nickname': nickname, 'message' : "login successfully" } cwd = os.path.dirname(__file__) path = os.path.join(cwd, 'templates', 'index.html') self.response.out.write(template.render(path, template_values, debug=_DEBUG)) else: self.response.out.write("Login failed") self.response.out.write("<br/><a href=\"/login\">retry</a>") break
def get(self): #session = get_current_session() #nickname = session.get("nickname", 0) #if not nickname: # logging.info("not logged in") # return #这里必须有nickname,否则不知道是谁 nickname = self.request.get('nickname') userinfo = UserInfo.gql("WHERE nickname=:1", nickname).get() if not userinfo: logging.info("no userinfo found: %s",nickname) self.response.out.write("no userinfo found<br/>") return #此处不用认证,否则会加入很多未公开的图片的" flickr = auth.FlickrAuth(userinfo, no_token=True) if not flickr: logging.info("flickr authentication failed") self.response.out.write("flickr authentication failed") return weibo = auth.WeiboAuth(userinfo) if not weibo: logging.info("weibo authentication failed") self.response.out.write("weibo authentication failed") return #获得相片 self.ClearImage() list = self.GetFlickrImages(flickr, userinfo) #获得位置需要认证 flickr = auth.FlickrAuth(userinfo, no_token=False) if not flickr: logging.info("flickr authentication failed") self.response.out.write("flickr authentication failed") return for e in list: location = None try: data = flickr.flickr_call(method='flickr.photos.geo.getLocation', photo_id=e.photo_id, format='rest') l = flickr.parse_etree(data) location = l.find('photo/location') except FlickrError: logging.info( "%s has no location info."% (e.photo_id)) self.response.out.write( "%s has no location info.<br/>"% (e.photo_id)) if e.url[-6:] == "_m.jpg": e.url = e.url[:-5] + "b.jpg" url1 = "http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=500&url="+e.url else: url1 = e.url content = (urlfetch.fetch(url1)).content ie = ImageEntity() ie.url = e.url ie.url1 = url1 ie.image = db.Blob(content) if location is not None: e.latitude = location.attrib['latitude'] e.longitude = location.attrib['longitude'] e.accuracy = location.attrib['accuracy'] if self.PostWeibo(weibo, e, ie) : e.put() ie.put() logging.info("sync ok") self.response.out.write("sync ok<br/>")
def post(self): if not LoginHandler().checkLogin(): self.redirect("login.html") nickname = self.request.get('nickname') message = "" #if True: try: #client = APIClient(app_key=WEIBO_APP_KEY, app_secret=WEIBO_APP_SECRET, redirect_uri=WEIBO_CALLBACK_URL) userInfo = UserInfo.gql("WHERE nickname=:1",nickname).get() if not userInfo: self.response.out.write( "No such a user: %s"% (nickname)) return weibo = auth.WeiboAuth(userInfo) flickr = auth.FlickrAuth(userInfo) weibo_auth_url = None if V2: weibo_auth_url = weibo.get_authorize_url() userInfo.flickr_id = self.request.get('flickr_id') userInfo.flickr_api_key = self.request.get('flickr_api_key') userInfo.flickr_api_secret = self.request.get('flickr_api_secret') userInfo.flickr_browse_type = self.request.get('flickr_browse_type') userInfo.flickr_browse_typename = self.request.get('flickr_browse_typename') userInfo.weibo_id = self.request.get('weibo_id') userInfo.weibo_access_token = self.request.get('weibo_access_token') userInfo.weibo_access_token_secret = self.request.get('weibo_access_token_secret') if userInfo.flickr_browse_type == "set" : #check flickr photoset sets = flickr.photosets_getList(user_id=userInfo.flickr_id) set_id = -1 found = False for set in sets.findall('photosets/photoset'): set_title = set.find('title').text if set_title == userInfo.flickr_browse_typename: set_id = int(set.attrib['id']) found = True break if found == False: self.response.out.write( "No such photoset: %s"% (userInfo.flickr_browse_typename)) return userInfo.flickr_browse_setid = set_id userInfo.flickr_max_days = int(self.request.get('flickr_max_days')) userInfo.put() message = "user information updated" flick_login_url = None if not auth.GetFlickrToken(userInfo.nickname): flick_login_url = auth.GetFlickrLoginUrl(userInfo) template_values = { 'nickname': userInfo.nickname, 'flickr_id': userInfo.flickr_id, 'flickr_api_key': userInfo.flickr_api_key, 'flickr_api_secret': userInfo.flickr_api_secret, 'flickr_browse_type': userInfo.flickr_browse_type, 'flickr_browse_typename': userInfo.flickr_browse_typename, 'flickr_browse_setid': userInfo.flickr_browse_setid, 'flickr_max_days': userInfo.flickr_max_days, 'flick_login_url':flick_login_url, 'weibo_id': userInfo.weibo_id, 'weibo_access_token': userInfo.weibo_access_token, 'weibo_access_token_secret': userInfo.weibo_access_token_secret, 'weibo_avatar' : userInfo.weibo_avatar, 'weibo_auth_url' : weibo_auth_url, 'message' : u"用户信息已经更新完毕" } cwd = os.path.dirname(__file__) path = os.path.join(cwd, 'templates', 'setting.html') self.response.out.write(template.render(path, template_values, debug=_DEBUG)) except Exception as e: self.response.out.write( "Unexpected error: %s"% (e))