def _append_one(data,user_id): if(not user_id): return bookmark=ApiObject.get_bookmark_of_user_id_for_write(user_id) if(bookmark): if(StackFeed._append_one_core(data,bookmark)): bookmark.put()
def del_message_list(self,user): if(self.request.get("user_id")!=user.user_id()): self.response.out.write(Alert.alert_msg("認証に失敗しました。",self.request.host)); return False bookmark=ApiObject.get_bookmark_of_user_id_for_write(user.user_id()) if(bookmark==None): self.response.out.write(Alert.alert_msg("ユーザデータが見つかりません。",self.request.host)); return False tweet_list=self.request.get_all("tweet_list") if(not tweet_list or len(tweet_list)==0): self.response.out.write(Alert.alert_msg("削除するツイートが選択されていません。",self.request.host)); return False for tweet in tweet_list: self.del_from_bookmark(bookmark,tweet) try: data=db.get(tweet) except: data=None if(data): if(data.from_user_id==user.user_id()): data.delete() bookmark.put() return True
def withdraw(self,bookmark,your_bbs_count): user_id=self.request.get("user_id") if(not user_id): Alert.alert_msg_with_write(self,"ユーザIDが必要です。") return True user=users.get_current_user() bookmark=ApiObject.get_bookmark_of_user_id_for_write(user_id) #キャッシュから取得するのを防止 if(not bookmark): Alert.alert_msg_with_write(self,"ユーザが見つかりません。") return True if(OwnerCheck.check_bookmark(bookmark,user)): Alert.alert_msg_with_write(self,"退会する権限がありません。") return True is_english=CssDesign.is_english(self) if(your_bbs_count==0): #delete_user_thread(user.user_id()) #他人の掲示板に描いたイラストは慎重に削除する必要がある気がする bookmark.delete() msg="退会が完了しました。" if(is_english): msg="Complete" Alert.alert_msg_with_write(self,msg); else: msg="退会する前にレンタルしている掲示板を削除する必要があります。<BR>掲示板の削除はマイページのイラストタブで編集を押すことで行うことができます。<BR>残りの掲示板数:"+str(your_bbs_count) if(is_english): msg="You must delete your BBS before withdraw.<br/>You have "+str(your_bbs_count)+" BBS yet." Alert.alert_msg_with_write(self,msg) return True return True
def _consume_feed(user,view_mode,bookmark): if(user and bookmark): if(not view_mode): if(bookmark.new_feed_count or bookmark.new_my_feed_count): bookmark=ApiObject.get_bookmark_of_user_id_for_write(user.user_id()) bookmark.new_feed_count=0 bookmark.new_my_feed_count=0 bookmark.put() return bookmark
def violate_icon(self): bookmark = ApiObject.get_bookmark_of_user_id_for_write(self.request.get("user_id")) if bookmark == None: Alert.alert_msg_with_write(self, "ブックマークの取得に失敗しました。") return bookmark.thumbnail_created = BbsConst.USER_ICON_THUMBNAIL_VIOLATE bookmark.icon = None bookmark.icon_content_type = None bookmark.icon_mini = None bookmark.icon_mini_content_type = None bookmark.put() self.redirect("./mypage?user_id=" + self.request.get("user_id"))
def invalidate_thread_count(user_id): if(not user_id): return bookmark=ApiObject.get_bookmark_of_user_id_for_write(user_id) if(not bookmark): return bookmark.submit_thread_count=None bookmark.submit_moper_count=None bookmark.submit_thread_count=ApiUser._get_submit_illust_count(user_id,bookmark,BbsConst.ILLUSTMODE_ILLUST) bookmark.submit_moper_count=ApiUser._get_submit_illust_count(user_id,bookmark,BbsConst.ILLUSTMODE_MOPER) bookmark.put()
def del_message_all(self,user): if(self.request.get("user_id")!=user.user_id()): self.response.out.write(Alert.alert_msg("認証に失敗しました。",self.request.host)); return False bookmark=ApiObject.get_bookmark_of_user_id_for_write(user.user_id()) if(bookmark==None): self.response.out.write(Alert.alert_msg("ユーザデータが見つかりません。",self.request.host)); return False tweeet_list=StackFeedData.all().filter("from_user_id =",user.user_id()).filter("feed_mode =","message").fetch(limit=1000) delete_limit=100 del_cnt=0 for tweet in tweeet_list: if(tweet.from_user_id==user.user_id()): self.del_from_bookmark(bookmark,str(tweet.key())) tweet.delete() del_cnt=del_cnt+1 if(del_cnt>=delete_limit): break if(del_cnt>=delete_limit):#len(bookmark.my_timeline)>=1): self.response.out.write(Alert.alert_msg(str(del_cnt)+"件のツイートを削除しましたが、ツイートを削除しきることができませんでした。リロードして下さい。",self.request.host)); return False if(del_cnt==0): self.response.out.write(Alert.alert_msg("削除するツイートが見つかりませんでした。",self.request.host)); return False #bookmark.stack_feed_list=[] #bookmark.my_timeline=[] bookmark.put() self.response.out.write(Alert.alert_msg(str(del_cnt)+"件のツイートを削除しました。",self.request.host)); return False
def get(self,regist_mode): SetUtf8.set() #表示モードかどうか view_mode=None if(self.request.get("user")): view_mode=self.request.get("user") #ユーザ検索 if(self.request.get("user_id")): target_bookmark=ApiObject.get_bookmark_of_user_id(self.request.get("user_id")) if(target_bookmark==None): Alert.alert_msg_with_write(self,"ユーザが見つかりません。") return view_mode=str(target_bookmark.key()); #リダイレクトURL host=MappingId.mapping_host_with_scheme(self.request)+"/"; redirect_url=host+"mypage"; #編集モードか edit_mode=0 if(self.request.get("edit")): edit_mode=int(self.request.get("edit")) #掲示板一覧 user = users.get_current_user() favorite="" bookmark=None #管理人かどうか is_admin=0 if(OwnerCheck.is_admin(user)):# and self.request.get("is_admin")): is_admin=1 #自分だったらビューモードにしない if(user and self.request.get("user_id")==user.user_id() and not self.request.get("withdraw")): view_mode=0 #ログインしているか login_flag=0 if(user): login_flag=1 #表示設定 if(view_mode): bookmark=db.get(view_mode) else: if user: bookmark=ApiObject.get_bookmark_of_user_id(user.user_id()) else: bookmark=None #掲示板の新規作成が完了したか regist_finish=False if(regist_mode=="regist"): regist_finish=True #プロフィールを編集 edit_profile=Pinterest.get_profile_for_edit(bookmark,view_mode) #アカウントの凍結 if(self.request.get("freez") and is_admin): bookmark=ApiObject.get_bookmark_of_user_id_for_write(self.request.get("user_id")) bookmark.frozen=int(self.request.get("freez")) bookmark.put() #退会 if(self.request.get("withdraw") and self.request.get("withdraw")=="go"): if(not bookmark): Alert.alert_msg_with_write(self,"ユーザ情報は未登録です。"); return your_bbs_count=Bbs.all().filter("del_flag =",0).filter("user_id =",bookmark.user_id).count() if(self.withdraw(bookmark,your_bbs_count)): return; #リダイレクト if(BbsConst.PINTEREST_MODE): if((user and OwnerCheck.is_admin(user)) or BbsConst.PINTEREST_MODE==2): if(regist_finish): return Pinterest.get_core(self,Pinterest.PAGE_MODE_REGIST) else: return Pinterest.get_core(self,Pinterest.PAGE_MODE_MYPAGE)
def post(self): SetUtf8.set() mode = self.request.get("mode") name = self.request.get("name") profile = self.request.get("profile") homepage = self.request.get("homepage") mail = self.request.get("mail") twitter = self.request.get("twitter") birthday_year = self.request.get("birthday_year") birthday_month = self.request.get("birthday_month") birthday_day = self.request.get("birthday_day") regulation=0 if(self.request.get("regulation_r15_nl")): regulation+=1 if(self.request.get("regulation_r15_bl")): regulation+=2 if(self.request.get("regulation_r15_gl")): regulation+=4 privacy_rental_bbs=1 if(self.request.get("privacy_rental_bbs")): privacy_rental_bbs=0 disable_global_tweet=1 if(self.request.get("privacy_tweet")): disable_global_tweet=0 disable_rankwatch=1 if(self.request.get("privacy_user_ranking")): disable_rankwatch=0 if(disable_global_tweet): cache_id=BbsConst.OBJECT_CACHE_HEADER+BbsConst.OBJECT_TWEET_LIST_HEADER memcache.delete(cache_id) is_english=CssDesign.is_english(self) if(name==""): if(is_english): Alert.alert_msg_with_write(self,"No name"); else: Alert.alert_msg_with_write(self,"名前がありません。"); return #if(profile==""): # Alert.alert_msg_with_write(self,"プロフィールがありません。"); # return user = users.get_current_user() if(not(user)): Alert.alert_msg_with_write(self,"ログインが必要です。"); return bookmark=ApiObject.get_bookmark_of_user_id_for_write(user.user_id()) if(bookmark==None): Alert.alert_msg_with_write(self,"プロフィールの取得に失敗しました。"); return profile = cgi.escape(profile) compiled_line = re.compile("\r\n|\r|\n") profile = compiled_line.sub(r'<br/>', profile) if(mail=="None"): mail="" if(homepage=="None"): homepage="" if(twitter=="None"): twitter="" bookmark.name=name bookmark.profile=profile bookmark.mail=mail bookmark.twitter_id=twitter bookmark.homepage=homepage bookmark.owner=user bookmark.disable_rankwatch=disable_rankwatch bookmark.disable_global_tweet=disable_global_tweet bookmark.regulation=regulation bookmark.privacy_rental_bbs=privacy_rental_bbs if(self.request.get("my_color")=="" or self.request.get("my_color")=="#f2f2f2"): bookmark.my_color=None else: bookmark.my_color=self.request.get("my_color") bookmark.sex=int(self.request.get("sex")) if(birthday_year): try: birthday_year=int(birthday_year) except: if is_english: Alert.alert_msg_with_write(self,"Birthday must be number"); else: Alert.alert_msg_with_write(self,"生まれた年は半角数字である必要があります。"); return else: birthday_year=0 if(birthday_month): try: birthday_month=int(birthday_month) except: if is_english: Alert.alert_msg_with_write(self,"Birthday must be number"); else: Alert.alert_msg_with_write(self,"生まれた月は半角数字である必要があります。"); return else: birthday_month=0 if(birthday_day): try: birthday_day=int(birthday_day) except: if is_english: Alert.alert_msg_with_write(self,"Birthday must be number"); else: Alert.alert_msg_with_write(self,"生まれた日は半角数字である必要があります。"); return else: birthday_day=0 bookmark.birthday_year=birthday_year bookmark.birthday_month=birthday_month bookmark.birthday_day=birthday_day bookmark.icon_mini=None #サムネイルの再作成を要求 bookmark.thumbnail_created=0 age=Pinterest.get_age(bookmark) if(bookmark.regulation and age>=1 and age<=14): Alert.alert_msg_with_write(self,"制限付きコンテンツを表示するには15歳以上である必要があります。"); return if(self.request.get("icon")): bookmark.icon=db.Blob(self.request.get("icon")) img = self.request.body_file.vars['icon'] bookmark.icon_content_type=img.headers['content-type'] if(not ApiObject.create_user_thumbnail(bookmark)): if is_english: Alert.alert_msg_with_write(self,"Too big icon image"); else: Alert.alert_msg_with_write(self,"アイコン画像が大きすぎます。"); return try: SyncPut.put_sync(bookmark) except: Alert.alert_msg_with_write(self,"データストアへの保存に失敗しました。アイコンの容量が1MBを超えている場合は縮小してからアップロードして下さい。"); return self.redirect(str("./mypage"))
def get(self): SetUtf8.set() mode = self.request.get("mode") #スレッド取得 thread = AddBookmark.get_one_db(self.request.get("thread_key")) if(not thread and mode=="add"): #削除はスレッドが見つからなくてもできるようにする Alert.alert_msg_with_write(self,"スレッドが見つかりません。"); return #BBS取得 bbs=AddBookmark.get_one_db(self.request.get("bbs_key")) if(not bbs and mode=="add_bbs"): Alert.alert_msg_with_write(self,"掲示板が見つかりません。"); return #アプリ取得 app=AddBookmark.get_one_db(self.request.get("app_key")) if(not app and mode=="add_app"): Alert.alert_msg_with_write(self,"アプリが見つかりません。"); return #ログイン要求 user = users.get_current_user() if(not(user)): Alert.alert_msg_with_write(self,"ブックマークをする場合はログインが必須です。"); return bookmark=ApiObject.get_bookmark_of_user_id_for_write(user.user_id()) if(bookmark==None): Alert.alert_msg_with_write(self,"ブックマークの取得に失敗しました。"); return #ユーザ add_user_key=self.request.get("user_key") #ブックマーク数を初期化 if(thread): if(not thread.bookmark_count): thread.bookmark_count=0 if(bbs): if(not bbs.bookmark_count): bbs.bookmark_count=0 add_thread_key=None if(self.request.get("thread_key")): add_thread_key=db.Key(self.request.get("thread_key")) add_bbs_key=None if(self.request.get("bbs_key")): add_bbs_key=db.Key(self.request.get("bbs_key")) add_app_key=None if(self.request.get("app_key")): add_app_key=db.Key(self.request.get("app_key")) comment=None if(self.request.get("comment")): comment=self.request.get("comment") #unpack mute_bbs_list mute_bbs_list=bookmark.get_mute_bbs_list() mute_user_list=bookmark.get_mute_user_list() #add bookmark feed_enable=False if(mode=="add"): AddBookmark.add_comment(thread,user.user_id(),comment) feed_enable=AddBookmark.add_one(bookmark.thread_key_list,add_thread_key,thread,True) if(mode=="add_bbs"): feed_enable=AddBookmark.add_one(bookmark.bbs_key_list,add_bbs_key,bbs,True) if(mode=="add_mute_bbs"): feed_enable=AddBookmark.add_one(mute_bbs_list,str(add_bbs_key),bbs,False) if(mode=="add_app"): AddBookmark.add_one(bookmark.app_key_list,add_app_key,app,True) if(mode=="add_user"): feed_enable=AddBookmark.add_user(bookmark.user_list,add_user_key) if(mode=="add_mute_user"): feed_enable=AddBookmark.add_user(mute_user_list,add_user_key) #del bookmark if(mode=="del"): AddBookmark.del_one(bookmark.thread_key_list,add_thread_key,thread,True) if(mode=="del_bbs"): AddBookmark.del_one(bookmark.bbs_key_list,add_bbs_key,bbs,True) if(mode=="del_mute_bbs"): AddBookmark.del_one(mute_bbs_list,str(add_bbs_key),bbs,False) if(mode=="del_app"): AddBookmark.del_one(bookmark.app_key_list,add_app_key,app,True) if(mode=="del_user"): if(add_user_key in bookmark.user_list): bookmark.user_list.remove(add_user_key) if(mode=="del_mute_user"): if(add_user_key in mute_user_list): mute_user_list.remove(add_user_key) #pack mute_bbs_list bookmark.mute_bbs_packed_str_list="" for one_bbs in mute_bbs_list: bookmark.mute_bbs_packed_str_list+=str(one_bbs)+"#" bookmark.mute_user_packed_str_list="" for m_user in mute_user_list: bookmark.mute_user_packed_str_list+=str(m_user)+"#" #フォロー先のユーザのフォロワーを更新するようにリクエスト if(mode=="add_user" or mode=="del_user"): ApiObject.invalidate_follower_list(add_user_key) #write bookmark.put() #feed(feed内でもbookmark.putを行うため、bookmark.putの前に置いてはいけない) if(mode=="add"): if(feed_enable): StackFeed.feed_new_bookmark_thread(user,thread,comment) Ranking.add_rank_global(thread,BbsConst.SCORE_BOOKMARK) if(mode=="add_bbs"): if(feed_enable): StackFeed.feed_new_bookmark_bbs(user,bbs) if(mode=="add_user"): if(feed_enable): StackFeed.feed_new_follow(user,add_user_key) if(mode=="del_user"): StackFeed.feed_unfollow(user,add_user_key) #redirect url="./mypage" if(mode=="del" or mode=="add"): url=url+"?tab=bookmark" if(mode=="del_bbs" or mode=="add_bbs"): url=url+"?tab=bbs" if(mode=="del_mute_bbs" or mode=="add_mute_bbs"): url=url+"?tab=bbs" if(mode=="add_user" or mode=="del_user"): url=url+"?user_id="+add_user_key if(mode=="add" or mode=="add_bbs"): Alert.alert_msg_with_write(self,"success"); else: self.redirect(str(url))