def violate_thread(self): # スレッド thread = db.get(self.request.get("thread_key")) if self.request.get("mode") == "adult": if thread.adult: thread.adult = 0 else: thread.adult = 1 if self.request.get("mode") == "terms": if thread.violate_terms: thread.violate_terms = 0 else: thread.violate_terms = 1 if self.request.get("mode") == "photo": if thread.violate_photo: thread.violate_photo = 0 else: thread.violate_photo = 1 if self.request.get("mode") == "comment": if thread.prohibit_comment: thread.prohibit_comment = 0 else: thread.prohibit_comment = 1 thread.put() ApiFeed.invalidate_cache() bbs = db.get(self.request.get("bbs_key")) self.redirect(str(MappingId.get_usr_url("./", bbs) + self.request.get("thread_key") + ".html"))
def post(self): bbs = None try: bbs = db.get(self.request.get("bbs_key")) except: bbs = None if bbs == None: self.response.out.write(Alert.alert_msg("削除対象が見つかりません。", self.request.host)) return user = users.get_current_user() if not user: self.response.out.write(Alert.alert_msg("ログインする必要があります。", self.request.host)) return is_admin = OwnerCheck.is_admin(user) if OwnerCheck.check(bbs, user) and (not is_admin): self.response.out.write(Alert.alert_msg("削除する権限がありません。", self.request.host)) return bbs.del_flag = 1 bbs.put() ApiFeed.invalidate_cache() self.redirect(str("./mypage?tab=bbs"))
def get(self): try: bbs = db.get(self.request.get("bbs_key")) except: bbs=None try: thread = db.get(self.request.get("thread_key")) except: thread=None if(not bbs or not thread): self.response.out.write(Alert.alert_msg("削除対象が見つかりません。",self.request.host)) return is_english=CssDesign.is_english(self) del_ok=0 if(self.request.get("del_key")): if(thread.delete_key): if(thread.delete_key==self.request.get("del_key")): del_ok=1 else: msg="削除キーが一致しません。" if(is_english): msg="invalid key" self.response.out.write(Alert.alert_msg(msg,self.request.host)) return; user = users.get_current_user() bbs_owner = not OwnerCheck.check(bbs,user) thread_owner=False if(user and user.user_id()==thread.user_id): thread_owner=True if(del_ok==0): if(not bbs_owner and not thread_owner and not OwnerCheck.is_admin(user)): self.response.out.write(Alert.alert_msg("削除権限がありません。",self.request.host)) return DelThread.delete_thread_core(thread) bbs.cached_thumbnail_key=None bbs.put() ApiFeed.invalidate_cache() url=MappingId.get_usr_url("./",bbs) self.redirect(str(url))
def update_thread(self,bbs,thread,user): compiled_line = re.compile("\r\n|\r|\n") title = self.request.get('thread_title') title=self.escape_comment(title) thread.title = title thread.author=self.request.get('thread_author') category = self.request.get("thread_category") thread.category=category CategoryList.add_new_category(bbs,category) event_id = self.request.get("event_id") thread.event_id=event_id summary = self.request.get('thread_summary') summary = compiled_line.sub(r'', summary) thread.summary = summary postscript = self.request.get('thread_postscript') postscript = compiled_line.sub(r'', postscript) thread.postscript = postscript new_show_in_portal = int(self.request.get('dont_show_in_portal')) if((thread.violate_photo and not new_show_in_portal) or (not thread.violate_photo and new_show_in_portal)): ApiFeed.invalidate_cache() thread.violate_photo = new_show_in_portal self.link_to_profile(thread,user) thread.adult=int(self.request.get("regulation")) #thread.hidden_in_list = int(self.request.get('hidden_in_list')) try: thread.comment_cnt = int(self.request.get('comment_cnt')) except: Alert.alert_msg_with_write(self,"コメント数は数値である必要があります。"); return True thread.search_index_version=0 #インデックス更新 thread.put() if(thread.user_id): ApiUser.invalidate_thread_count(thread.user_id) return False
def get(self): SetUtf8.set() #ランキング更新 rank=Ranking.get_or_insert(BbsConst.THREAD_RANKING_KEY_NAME) rank.create_rank(self) ApiFeed.invalidate_cache(); #キャッシュ取得 cache=SiteAnalyzer.get_cache_from_db(); #1日単位で習得 #force=False #if(self.request.get("force")): # force=True if(cache.date and len(cache.day_list)>=1):# and not force): day1_str=NicoTracker.get_day_string(cache.date) day2_str=NicoTracker.get_day_string(datetime.datetime.today()) if(day1_str==day2_str): Alert.alert_msg_with_write(self,"ランキングを更新しました。統計情報はまだ1日が経過していないので計測していません。") return #コメント数と再生数を取得 bbs_cnt=Bbs.all().count(limit=100000) illust_cnt=MesThread.all().count(limit=100000) entry_cnt=Entry.all().count(limit=100000) user_cnt=Bookmark.all().count(limit=100000) #書き込み day_str=NicoTracker.get_day_string(datetime.datetime.today()) cache.entry_cnt_list.insert(0,entry_cnt) cache.illust_cnt_list.insert(0,illust_cnt) cache.bbs_cnt_list.insert(0,bbs_cnt) cache.user_cnt_list.insert(0,user_cnt) cache.day_list.insert(0,day_str) cache.bbs_n=bbs_cnt cache.illust_n=illust_cnt cache.put() Alert.alert_msg_with_write(self,"ランキングを更新しました。")
def delete_thread(self,bbs): thread_list=self.request.get_all("thread_list") count=0 for thread in thread_list: try: thread=db.get(thread) except: continue try: thread_bbs=thread.bbs_key except: continue if(thread_bbs.key()==bbs.key()): DelThread.delete_thread_core(thread) count=count+1 if(count): bbs.cached_thumbnail_key=None bbs.put() ApiFeed.invalidate_cache() return count
def get(self): SetUtf8.set() #Query文字列を取得 query=self.request.query_string; #RESULT result_dic={} request_no=0 #APIリクエストに分解 api_list=query.split(":") for api in api_list: #APIの引数を取得 args=api.split("&") #引数をDictionaryに分解 api_args={} for arg in args: params=arg.split("=") if(len(params)>=2): api_args[params[0]]=params[1] #呼び出しAPIのクラス名を決定 if(api_args.has_key("class")): #ダミーリクエストハンドラーを作成 req=HttpHandlerHook() req.request.args=api_args req.request.host=self.request.host #API呼び出し dic=None if(api_args["class"]=="api_bookmark"): dic=ApiBookmark.get_core(req) if(api_args["class"]=="api_user"): dic=ApiUser.get_core(req) if(api_args["class"]=="api_feed"): dic=ApiFeed.get_core(req) if(dic==None): logging.error("UnknownClass:"+api_args["class"]) else: result_dic["request"+str(request_no)]=dic request_no=request_no+1 ApiObject.write_json_core(self,result_dic)
def _text_search(self,search,user,user_id,page,request_page_mode,redirect_api,contents_only): template_values=Pinterest.initialize_template_value(self,user,user_id,page,request_page_mode,redirect_api,contents_only) search_api="search_tag" unit=BbsConst.PINTEREST_PAGE_UNIT thread_list=SearchThread.search(search,page,unit,BbsConst.SEARCH_THREAD_INDEX_NAME) if(thread_list!=None): thread_list=ApiObject.create_thread_object_list(self,thread_list,"search") search_api_error=False else: search_api_error=True if(search=="empty"): thread_list=None if(search_api_error): #例外が起きた場合はTagSearchの結果を使う場合がある thread_list=Pinterest.get_tag_image(self,search,page,unit)["thread_list"] if(thread_list): search_api_error=False today=datetime.date.today() ranking_month_list=Pinterest._get_ranking_month_list(today,CssDesign.is_english(self)) template_values['thread_list']=thread_list template_values['next_query']="search="+urllib.quote_plus(str(search)) template_values['tag_list']=SearchTag.get_recent_tag(search_api) template_values['page_mode']="search" template_values['illust_enable']=True template_values['search']=search template_values['search_api_error']=search_api_error template_values['top_page']=True template_values['ranking_month_list']=ranking_month_list template_values['month_query']="" if(search=="empty"): order="new" Pinterest._update_event_list(self,template_values,order,contents_only) Pinterest._update_room_list(self,template_values,order,contents_only) Pinterest._update_tweet_list(self,template_values,order,contents_only) template_values["bbs_list"]=ApiFeed.feed_get_bbs_list(self,"hot",0,8) Pinterest._render_page(self,template_values)
def _update_event_list(self,template_values,order,contents_only): event_list=None all_event_list=None old_event_list=None now_event=None now_event_start_date="" now_event_end_date="" if(order=="event" and not contents_only): event_list=EventList.get_event_list() all_event_list=EventList.get_all_event_list() old_event_list=EventList.get_old_event_list() if(self.request.get("event_id")): now_event=EventList.get_event(self.request.get("event_id")) now_event_start_date=now_event.start_date.replace(tzinfo=UTC()).astimezone(JST()).strftime('%Y/%m/%d') now_event_end_date=now_event.end_date.replace(tzinfo=UTC()).astimezone(JST()).strftime('%Y/%m/%d') event_thread_list=None if(order=="new" and not contents_only): event_list=EventList.get_event_list() if(event_list): now_event=event_list[0] event_thread_list=ApiFeed.feed_get_thread_list(self,"event",0,8) if(now_event_start_date==""): start_day=datetime.datetime.today() if(event_list): start_day=event_list[0].end_date now_event_start_date=start_day.replace(tzinfo=UTC()).astimezone(JST()).strftime('%Y/%m/%d') now_event_end_date=(start_day+datetime.timedelta(days=BbsConst.EVENT_MAX_DAYS)).replace(tzinfo=UTC()).astimezone(JST()).strftime('%Y/%m/%d') template_values['event_list']=event_list template_values['all_event_list']=all_event_list template_values['old_event_list']=old_event_list template_values['now_event']=now_event template_values['now_event_start_date']=now_event_start_date template_values['now_event_end_date']=now_event_end_date template_values['is_old_event']=EventList.is_old_event(now_event) template_values['event_thread_list']=event_thread_list
def post(self): is_flash=self.request.get('mode')=="illust" or self.request.get('mode')=="illust_all"; is_english=CssDesign.is_english(self) if(self.request.get('thread_title')==""): if(is_english): self.write_status(is_flash,"Please input title"); else: self.write_status(is_flash,"スレッドタイトルを入力して下さい。"); return if(self.request.get('author')==""): if(is_english): self.write_status(is_flash,"Please input author"); else: self.write_status(is_flash,"投稿者名を入力して下さい。"); return permission_error_str="スレッドを作成する権限がありません。" if(is_english): permission_error_str="Permission denied" login_require="ログインが必要です。" if(is_english): login_require="Login require" bbs = db.get(self.request.get("bbs_key")) user = users.get_current_user() if(not user and self.request.get('mode')=="illust_all"): self.write_status(is_flash,login_require); return if(bbs.bbs_mode==BbsConst.BBS_MODE_ONLY_ADMIN): if(OwnerCheck.check(bbs,user)): self.write_status(is_flash,permission_error_str); return if(bbs.bbs_mode==BbsConst.BBS_MODE_NO_IMAGE): if(bbs.disable_create_new_thread==1): if(OwnerCheck.check(bbs,user)): self.write_status(is_flash,permission_error_str); return if(bbs.disable_create_new_thread==2): if(not user): self.write_status(is_flash,permission_error_str); return if(SpamCheck.check_all(self,self.request.get('thread_title'),self.request.get("remote_host"),user,bbs,is_flash,is_english)): return homepage_addr="" if(self.request.get('homepage_addr') and self.request.get('homepage_addr')!="http://"): homepage_addr=self.request.get('homepage_addr') overwrite_mode=False if(self.request.get("thread_key")): #上書きモード #上書きの場合 overwrite_mode=True new_thread=db.get(self.request.get("thread_key")) if(OwnerCheck.check(bbs,user)): if((not user) or (not new_thread.user_id) or new_thread.user_id!=user.user_id()): if(self.request.get("delete_key")!=new_thread.delete_key or new_thread.delete_key==""): self.write_status(is_flash,"上書きをする権限がありません。"); return; else: #新規作成の場合 new_thread = MesThread() new_thread.put() #キーの確保 new_thread.score = None new_thread.comment_cnt=0 bbs.illust_n=bbs.illust_n+1 bbs.cached_threads_num=None #キャッシュ更新リクエスト bbs.put() #上書きモードの場合は作成日を更新しない new_thread.create_date=datetime.datetime.today() #更新日は更新する new_thread.date=datetime.datetime.today() #各種設定値を書き込み new_thread.illust_mode = int(self.request.get('illust_mode')) new_thread.title = cgi.escape(self.request.get('thread_title')) if(self.request.get('mode')=="illust_all"): new_thread.summary = self.request.get('comment') else: new_thread.summary = cgi.escape(self.request.get('comment')) new_thread.bbs_key = db.Key(self.request.get('bbs_key')) new_thread.summary=EscapeComment.escape_br(new_thread.summary) new_thread.homepage_addr=homepage_addr new_thread.author=self.request.get('author') if(self.request.get("draw_time")): new_thread.draw_time=int(self.request.get("draw_time")) if(self.request.get("delete_key")): new_thread.delete_key=self.request.get("delete_key") if(self.request.get("category")): new_thread.category=self.request.get("category") CategoryList.add_new_category(bbs,new_thread.category) if(self.request.get("event_id")): new_thread.event_id=self.request.get("event_id") if(self.request.get("regulation")): new_thread.adult=int(self.request.get("regulation")) if(self.request.get("dont_show_in_portal")): new_thread.violate_photo=1 if(self.request.get("is_png")): new_thread.is_png=1 else: new_thread.is_png=0 #プロフィールにリンクするか link_to_profile=StackFeed.is_link_to_profile(self) if(link_to_profile and user): new_thread.user_id=user.user_id() #通常投稿モード(MOPER) if(self.request.get('mode')=="illust"): new_thread.image_key=db.get(self.request.get('thread_image')) new_thread.mail=self.request.get('thread_mail') compiled_line = re.compile("(http://[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)") new_thread.summary = compiled_line.sub(r'<a href=\1 TARGET="_blank">\1</a>', new_thread.summary) if(user): new_thread.user_id=user.user_id() #必ずプロフィールにマップ #一括投稿モード(新エディタ) timage=None if((self.request.get('mode')=="illust_all" or self.request.get('mode')=="illust_temp") and new_thread.illust_mode!=BbsConst.ILLUSTMODE_TEXT): timage=ThreadImage() timage.bbs_key=db.get(self.request.get("bbs_key")) if(self.request.get('mode')=="illust_temp"): try: temp_image=db.get(self.request.get("temp_illust_key")) except: temp_image=None if(not temp_image): self.write_status(is_flash,"画像データが見つかりません。") return timage.image=temp_image.image timage.thumbnail=temp_image.thumbnail else: if(self.request.get("base64") and self.request.get("base64")=="1"): timage.image=db.Blob(base64.b64decode(self.request.get("image"))) timage.thumbnail=db.Blob(base64.b64decode(self.request.get("thumbnail"))) new_thread.is_ipad=1 else: timage.image=db.Blob(self.request.get("image")) timage.thumbnail=db.Blob(self.request.get("thumbnail")) if(len(timage.image)<=0 or len(timage.thumbnail)<=0): self.write_status(is_flash,"画像データが不正です。"); return timage.illust_mode=new_thread.illust_mode timage.is_png=new_thread.is_png timage.thumbnail2=None try: timage.put() except: if(is_english): self.write_status(is_flash,"Too big image"); else: self.write_status(is_flash,"画像の容量が大きすぎます。"); return new_thread.image_key=timage ImageFile.invalidate_cache(str(timage.key())) #url assign MappingThreadId.assign(bbs,new_thread,False) #IPアドレスを書き込み new_thread.remote_addr=self.request.remote_addr new_thread.remote_host=self.request.get("remote_host") new_thread.thumbnail2_version=0 new_thread.search_index_version=0 #put if(not SyncPut.put_sync(new_thread)): message="イラストの投稿は成功しましたが表示が遅延しています。反映まで数分お待ちください。" memcache.set(BbsConst.OBJECT_BBS_MESSAGE_HEADER+str(bbs.key()),message,BbsConst.OBJECT_BBS_MESSAGE_CACHE_TIME) #サムネイル更新 if(timage): if(new_thread.adult==0): bbs.cached_thumbnail_key=str(timage.key()) bbs.put() #新着イラストのキャッシュ無効化 RecentCommentCache.invalidate(bbs) #ステータスを出力 if(is_flash): self.write_status(is_flash,"success") else: self.redirect(str('./bbs_index?bbs_key='+self.request.get('bbs_key'))) #feed if(not link_to_profile): user=None url=self.get_thread_url(bbs,new_thread) if(not overwrite_mode): try: StackFeed.feed_new_thread(user,bbs,new_thread) except: logging.error("new thread stack feed add error") #submit thread count if(user): ApiUser.invalidate_thread_count(user.user_id()) #news ApiFeed.invalidate_cache() #Rss RssFeed.invalidate_cache(str(bbs.key()))
def _index(self,user,user_id,page,request_page_mode,redirect_api,contents_only): unit=BbsConst.PINTEREST_PAGE_UNIT order="new" if(self.request.get("order")): order=self.request.get("order") month_query="" if(self.request.get("query")): month_query=self.request.get("query") search_api="search_tag" ranking_month_list=[] search_api_error=False if(order=="monthly"): if(month_query): today=datetime.datetime.strptime(month_query,"%Y-%m-%d") else: today=datetime.date.today() ranking_month_list=Pinterest._get_ranking_month_list(today,CssDesign.is_english(self)) thread_list=ApiFeed.feed_get_ranking_thread_list(month_query,page,unit) if(thread_list!=None): thread_list=ApiObject.create_thread_object_list(self,thread_list,"search") search_api_error=False else: search_api_error=True else: if(order=="lecture"): search_str="tag = 講座 OR category = 講座" no_reduct=False #日付における重み付けを外すか thread_list=SearchThread.search(search_str,page,unit,BbsConst.SEARCH_THREAD_INDEX_NAME,no_reduct) if(thread_list!=None): thread_list=ApiObject.create_thread_object_list(self,thread_list,"search") search_api_error=False else: search_api_error=True else: if(order=="chat"): thread_list=None else: thread_list=ApiFeed.feed_get_thread_list(self,order,(page-1)*unit,unit) bbs_list=None if(order=="hot" and not contents_only): bbs_list=ApiFeed.feed_get_bbs_list(self,"hot",0,8) recent_tag=None if(order=="hot" and not contents_only): recent_tag=SearchTag.get_recent_tag(search_api) my_color_bookmark=None if(user): my_color_bookmark=ApiObject.get_bookmark_of_user_id(user.user_id()) mute_bbs_list=[] mute_user_list=[] if(my_color_bookmark): mute_bbs_list=my_color_bookmark.get_mute_bbs_list() mute_user_list=my_color_bookmark.get_mute_user_list() template_values=Pinterest.initialize_template_value(self,user,user_id,page,request_page_mode,redirect_api,contents_only) template_values['thread_list']=thread_list template_values['next_query']="order="+order+"&query="+month_query template_values['tag_list']=recent_tag template_values['top_page']=True template_values['order']=order template_values['page_mode']="index" template_values['illust_enable']=True template_values['bbs_list']=bbs_list template_values['ranking_month_list']=ranking_month_list template_values['month_query']=month_query template_values['search_api_error']=search_api_error template_values['bookmark']=my_color_bookmark template_values['mute_bbs_list']=mute_bbs_list template_values['mute_user_list']=mute_user_list Pinterest._update_event_list(self,template_values,order,contents_only) Pinterest._update_room_list(self,template_values,order,contents_only) Pinterest._update_tweet_list(self,template_values,order,contents_only) template_values['is_admin']=OwnerCheck.is_admin(user) Pinterest._render_page(self,template_values)
def post(self): bbs_key=self.request.get("bbs_key") short=self.request.get('short') if(MappingId.key_format_check(short)): Alert.alert_msg_with_write(self,"IDは半角英数である必要があります。") return if(MappingId.check_capability(short,bbs_key)==0): Alert.alert_msg_with_write(self,"ID:"+short+"は既に登録されています。") return bbs=db.get(bbs_key); user = users.get_current_user() if(OwnerCheck.check(bbs,user) and not OwnerCheck.is_admin(user)): Alert.alert_msg_with_write(self,"デザインの編集を行う権限がありません。") return summary = self.request.get('bbs_summary') bg_color=self.format_color(self.request.get('bg_color')) font_color=self.format_color(self.request.get('font_color')) hr_color=self.format_color(self.request.get('hr_color')) content_bg_color=self.format_color(self.request.get('content_bg_color')) content_font_color=self.format_color(self.request.get('content_font_color')) menu_bg_color=self.format_color(self.request.get('menu_bg_color')) menu_font_color=self.format_color(self.request.get('menu_font_color')) side_color=self.format_color(self.request.get('side_color')) side_font_color=self.format_color(self.request.get('side_font_color')) twitter_bg_color=self.format_color(self.request.get('twitter_bg_color')) twitter_font_color=self.format_color(self.request.get('twitter_font_color')) twitter_shell_color=self.format_color(self.request.get('twitter_shell_color')) if(menu_bg_color=="None"): menu_bg_color="ffffff"; if(menu_font_color=="None"): menu_font_color="333333"; if(content_bg_color=="None"): content_bg_color="ffffff"; if(content_font_color=="None"): content_font_color="333333"; if(hr_color=="None"): hr_color="b5ae9d"; if(side_color=="None"): side_color="ffffff"; if(side_font_color=="None"): side_font_color="333333"; if(twitter_bg_color=="None"): twitter_bg_color="ffffff"; if(twitter_font_color=="None"): twitter_font_color="333333"; if(twitter_shell_color=="None"): twitter_shell_color="ffffff"; if re.match('[0-9a-fA-F]{1,6}', bg_color) == None: error_str="bg_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', font_color) == None: error_str="font_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', hr_color) == None: error_str="hr_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', twitter_bg_color) == None: error_str="twitter_bg_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', twitter_font_color) == None: error_str="twitter_font_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', side_color) == None: error_str="side_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', side_font_color) == None: error_str="side_font_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', content_bg_color) == None: error_str="content_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', content_font_color) == None: error_str="content_font_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', menu_bg_color) == None: error_str="menu_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if re.match('[0-9a-fA-F]{1,6}', menu_font_color) == None: error_str="menu_font_color is invalid" self.redirect(str('./edit_bbs?bbs_key='+self.request.get("bbs_key")+'&error_str='+error_str)) return if self.request.get('title'): bbs.bbs_name=self.request.get('title') bbs.my_homepage=self.request.get('my_homepage') bbs.background_image=self.request.get('background_image') bbs.side_background_image=self.request.get('side_background_image') bbs.bottom_image=self.request.get('bottom_image') if(bbs.background_image=="None"): bbs.background_image="" if(bbs.side_background_image=="None"): bbs.side_background_image="" if(bbs.bottom_image=="None"): bbs.bottom_image="" bbs.short=short if(bbs.short=="None"): bbs.short="" MappingId.invalidate(short) try: if(self.request.get('default_canvas_width')=="None"): bbs.default_canvas_width=0 else: bbs.default_canvas_width=int(self.request.get('default_canvas_width')) if(self.request.get('default_canvas_height')=="None"): bbs.default_canvas_height=0 else: bbs.default_canvas_height=int(self.request.get('default_canvas_height')) except: bbs.default_canvas_width=0 bbs.default_canvas_height=0 if(self.request.get('content_width')=="None"): bbs.content_width=800 else: try: bbs.content_width=int(self.request.get('content_width')) except: bbs.content_width=800 if(bbs.content_width<800): bbs.content_width=800 if(bbs.content_width>1280): bbs.content_width=1280 try: if(self.request.get('illust_reply_width')=="None"): bbs.illust_reply_width=400 else: bbs.illust_reply_width=int(self.request.get('illust_reply_width')) if(self.request.get('illust_reply_height')=="None"): bbs.illust_reply_height=200 else: bbs.illust_reply_height=int(self.request.get('illust_reply_height')) except: bbs.illust_reply_width=400 bbs.illust_reply_height=200 try: bbs.recent_comment_n=int(self.request.get('recent_comment_n')) except: bbs.recent_comment_n=8 try: bbs.recent_thread_n=int(self.request.get('recent_thread_n')) except: bbs.recent_thread_n=8 try: bbs.font_size=int(self.request.get('font_size')) except: bbs.font_size=0 bbs.disable_counter=int(self.request.get('disable_counter')) bbs.disable_draw_time=int(self.request.get('disable_draw_time')) #bbs.disable_portal_menu=int(self.request.get('disable_portal_menu')) bbs.disable_news=int(self.request.get('disable_news')) bbs.violate_terms=int(self.request.get('violate_terms')) bbs.disable_comment=int(self.request.get('disable_comment')) bbs.disable_tag=int(self.request.get('disable_tag')) bbs.default_order=int(self.request.get('order')) bbs.default_comment_order=int(self.request.get('comment_order')) bbs.comment_hidden_button=int(self.request.get('comment_hidden_button')) bbs.disable_author=int(self.request.get('disable_author')) bbs.disable_title=int(self.request.get('disable_title')) bbs.show_remote_addr_id=int(self.request.get('show_remote_addr_id')) bbs.tweet_disable=int(self.request.get('tweet_disable')) bbs.twitter_enable=int(self.request.get('twitter_enable')) bbs.twitter_id=self.request.get('twitter_id') height=self.request.get('twitter_height') if(height=="None" or height==""): height="300" bbs.twitter_height=int(height) bbs.in_frame_mode=int(self.request.get('in_frame_mode')) bbs.button_color=self.format_color(self.request.get('button_color')) bbs.button_font_color=self.format_color(self.request.get('button_font_color')) bbs.button_border_color=self.format_color(self.request.get('button_border_color')) bbs.button_active_color=self.format_color(self.request.get('button_active_color')) if(bbs.button_color=="None"): bbs.button_color="" if(bbs.button_active_color=="None"): bbs.button_active_color="" if(bbs.button_border_color=="None"): bbs.button_border_color="" if(bbs.button_font_color=="None"): bbs.button_font_color="" bbs.button_color_enable=int(self.request.get("button_color_enable")) amazon=self.request.get('amazon') amazon_title=self.request.get('amazon_title') freearea=self.request.get('freearea') freearea_title=self.request.get('freearea_title') comment_rule=self.request.get('comment_rule') if(amazon=="None"): amazon="" if(amazon_title=="None"): amazon_title="" if(freearea=="None"): freearea="" if(freearea_title=="None"): freearea_title="" if(comment_rule=="None"): comment_rule="" #summary = cgi.escape(summary) compiled_line = re.compile("\r\n|\r|\n") summary = compiled_line.sub(r'<br/>', summary) freearea = compiled_line.sub(r'<br/>', freearea) amazon = compiled_line.sub(r'<br/>', amazon) comment_rule = compiled_line.sub(r'<br/>', comment_rule) bbs.summary = summary bbs.amazon = amazon bbs.freearea = freearea bbs.comment_rule = comment_rule bbs.amazon_title = amazon_title bbs.freearea_title = freearea_title bbs.script_head = self.request.get("script_head") bbs.bg_color=bg_color bbs.font_color=font_color bbs.hr_color=hr_color bbs.content_bg_color=content_bg_color bbs.content_font_color=content_font_color bbs.menu_bg_color=menu_bg_color bbs.menu_font_color=menu_font_color bbs.twitter_bg_color=twitter_bg_color bbs.twitter_font_color=twitter_font_color bbs.twitter_shell_color=twitter_shell_color bbs.side_color=side_color bbs.side_font_color=side_font_color bbs.disable_content_image=int(self.request.get("disable_content_image")) try: bbs.design_template_no=int(self.request.get("design_template_no")) except: css=self.request.get("design_template_no") bbs.design_template_no=BbsConst.CSS_CUSTOM #css=self.request.get("css") if(not UpdateBbs.set_css(self,css,bbs)): return bbs.bbs_mode=int(self.request.get("mode")) bbs.comment_rule_enable=int(self.request.get("comment_rule_enable")) bbs.category_list=self.request.get("category_list") bbs.disable_category_sort=int(self.request.get("disable_category_sort")) bbs.deny_host_list=self.request.get("deny_host_list") bbs.enable_continue_draw=int(self.request.get("enable_continue_draw")) bbs.enable_illust_reply=int(self.request.get("enable_illust_reply")) bbs.enable_illust_reply_continue=int(self.request.get("enable_illust_reply_continue")) bbs.disable_normal_reply=int(self.request.get("disable_normal_reply")) bbs.enable_moper=int(self.request.get("enable_moper")) bbs.enable_full_flat=int(self.request.get("enable_full_flat")) bbs.enable_full_comment=int(self.request.get("enable_full_comment")) bbs.disable_applause=int(self.request.get("disable_applause")) bbs.disable_analyze=int(self.request.get("disable_analyze")) bbs.comment_login_require=int(self.request.get("comment_login_require")) bbs.disable_create_new_thread=int(self.request.get("disable_create_new_thread")) bbs.disable_create_new_illust=int(self.request.get("disable_create_new_illust")) bbs.dont_count_owner=int(self.request.get("dont_count_owner")) bbs.date_format=int(self.request.get("date_format")) bbs.move_account=self.request.get("move_account") bbs.show_only_movie=int(self.request.get("show_only_movie")) #bbs.dont_permit_app=int(self.request.get("dont_permit_app")) bbs.delete_when_upload_success=int(self.request.get("delete_when_upload_success")) bbs.disable_import_image=int(self.request.get("disable_import_image")) bbs.tool_bg_color=self.request.get("tool_bg_color") if(bbs.tool_bg_color=="None"): bbs.tool_bg_color=None try: bbs.page_illust_n=int(self.request.get("page_illust_n")) except: bbs.page_illust_n=5 try: bbs.page_comment_n=int(self.request.get("page_comment_n")) except: bbs.page_comment_n=10 if(bbs.page_illust_n<1) :bbs.page_illust_n=1 if(bbs.page_illust_n>10) :bbs.page_illust_n=10 if(bbs.page_comment_n<1) :bbs.page_comment_n=1 if(bbs.page_comment_n>50) :bbs.page_comment_n=50 bbs.put() RecentCommentCache.invalidate(bbs); #feed update ApiFeed.invalidate_cache() if(bbs.move_account): self.redirect(str('./move_account?bbs_key='+self.request.get("bbs_key"))) else: self.redirect(str('./bbs_index?bbs_key='+self.request.get("bbs_key")))