def _render_comment_core(req,host_url,bbs,thread,com_list_,edit_flag,bbs_key,logined,show_comment_form,is_admin,user_name,user,res_hash,show_ip): #レスを取得 com_list=ShowEntry._get_response(com_list_,res_hash,thread,bbs) #コメントの編集を行うか comment_edit=req.request.get("comment_edit") #iPhoneかどうか is_iphone=CssDesign.is_iphone(req) #英語版かどうか is_english=CssDesign.is_english(req) #レンダリング template_values = { 'host': host_url, 'bbs': bbs, 'thread': thread, 'com_list':com_list, 'edit_flag':edit_flag, 'bbs_key': bbs_key, 'logined':logined, 'show_comment_form':show_comment_form, 'is_admin':is_admin, 'user_name': user_name, 'user': user, 'redirect_url': req.request.path, 'comment_edit': comment_edit, 'is_iphone': is_iphone, 'is_english': is_english, 'show_ip': show_ip } path = "/html/thread/thread_comment.html" return template_select.render(path, template_values)
def get(self): SetUtf8.set() data="" user = users.get_current_user() user_id=""; if(user): user_id=user.user_id() is_iphone=CssDesign.is_iphone(self) is_mobile=is_iphone or CssDesign.is_tablet(self) app_key=ApiPerpetuation.get_app_key(self) host_url="http://"+MappingId.mapping_host(self.request.host)+"/"; template_values = { 'host': host_url, 'user_id': user_id, 'is_mobile': is_mobile, 'is_iphone': is_iphone, 'app_key': app_key } self.response.content_type = 'text/javascript' path = "/html/api/illustbook.js" self.response.out.write(template_select.render(path, template_values))
def get(self): user = users.get_current_user() bbs=db.get(self.request.get("bbs_key")) url=self.request.path+"?bbs_key="+self.request.get("bbs_key") #login = users.create_login_url(url) #logout = users.create_logout_url(url) moveok=0 if(user and bbs.move_account): if(bbs.move_account==user.email()): moveok=1 exec_move=0 if(self.request.get("mode")): if(self.request.get("mode")=="exec" and moveok==1): bbs.move_account="" bbs.owner=user bbs.user_id=user.user_id() bbs.put() exec_move=1 template_values = { 'host': "./", 'user': user, 'bbs': bbs, # 'login': login, # 'logout': logout, 'moveok': moveok, 'redirect_url': url, 'exec_move': exec_move } path = '/html/move_account.html' self.response.out.write(template_select.render(path, template_values))
def show_portal(self,user): self.redirect("./?order=chat") return is_iphone=CssDesign.is_iphone(self) is_tablet=CssDesign.is_tablet(self) show_room=Chat.get_room_object_list() is_admin=False if(OwnerCheck.is_admin(user)): is_admin=True #user_name=self.get_user_name(user) bookmark=None if(user): bookmark=ApiObject.get_bookmark_of_user_id(user.user_id()) template_values = { 'host': "./", 'is_iphone': is_iphone, 'is_tablet': is_tablet, 'bookmark': bookmark, 'redirect_url': self.request.path, 'mode': "chat", 'header_enable': False, 'room_list': show_room, 'is_admin':is_admin, #'user_name': user_name, 'is_english':CssDesign.is_english(self) } path = '/html/portal.html' self.response.out.write(template_select.render(path, template_values))
def get(self): #移動 if(self.request.host=="illust-book.appspot.com"): self.redirect(str("http://www.illustbook.net/")) return SetUtf8.set() #ホストチェック if SpamCheck.is_deny(self.request): self.response.set_status(401) return #メンテナンス画面 is_maintenance=0 if(MaintenanceCheck.is_appengine_maintenance()): is_maintenance=1 #BBS COUNT cache=SiteAnalyzer.get_cache() bbs_n=cache["bbs_n"] illust_n=cache["illust_n"] #最近のタグ tag_list=SearchTag.get_recent_tag("search_tag") #デベロッパーオプション user = users.get_current_user() is_dev_enable=OwnerCheck.is_admin(user) #iPhoneモードかどうか is_iphone=CssDesign.is_iphone(self) #リダイレクト if(BbsConst.PINTEREST_MODE): if((user and OwnerCheck.is_admin(user)) or BbsConst.PINTEREST_MODE==2): return Pinterest.get_core(self,Pinterest.PAGE_MODE_NORMAL) #URL生成 template_values = { 'host': "./", 'mes_bord_url': 'mes_bord', 'new_url': 'create_new_thread', 'bbs_n':bbs_n, 'illust_n':illust_n, 'tag_list':tag_list, 'is_dev_enable':is_dev_enable, 'is_maintenance': is_maintenance, 'is_iphone': is_iphone, 'user': user, 'redirect_url': self.request.path, 'top_page': True, 'mode': "index" } path = '/html/index.html' self.response.out.write(template_select.render(path, template_values))
def get(self): host_url=MappingId.mapping_host_with_scheme(self.request)+"/" page = 1 if(self.request.get("page")): page=int(self.request.get("page")) template_values = { 'host': host_url, 'page': page } path = '/html/comic.html' self.response.out.write(template_select.render(path, template_values))
def get(self): try: bbs = db.get(self.request.get("bbs_key")) except: Alert.alert_msg_with_write(self,"掲示板の編集画面のURLが変更されています。掲示板からログインし、デザインの編集ボタンをクリックして下さい。") return user = users.get_current_user() is_admin=0 if(user and OwnerCheck.is_admin(user)): is_admin=1 if(bbs.short!="sample" and OwnerCheck.check(bbs,user) and not is_admin): Alert.alert_msg_with_write(self,"デザインの編集の権限がありません。") return error_str="" if self.request.get("error_str"): error_str=self.request.get("error_str") is_css_enable=OwnerCheck.is_admin(user) my_app_list=None if(user): my_app_list=AppCode.all().filter("user_id =",user.user_id()).filter("mode =",2).fetch(limit=100,offset=0) tab="all" if(self.request.get("tab")): tab=self.request.get("tab") bbs_css=None try: bbs_css=bbs.css except: bbs_css=None template_values = { 'host': './', 'bbs': bbs, 'error_str': error_str, 'is_css_enable': is_css_enable, 'is_admin': is_admin, 'is_iphone': CssDesign.is_iphone(self), 'is_tablet': CssDesign.is_tablet(self), 'my_app_list': my_app_list, 'user': user, 'tab': tab, 'redirect_url': self.request.path, 'bbs_css': bbs_css, 'is_english': CssDesign.is_english(self) } path = '/html/edit_bbs.html' self.response.out.write(template_select.render(path, template_values))
def _alert_msg_core(msg,host_url,is_iphone,is_english): user=users.get_current_user() template_values = { 'host': host_url, 'alert_msg': msg, 'is_iphone': is_iphone, 'is_english': is_english, 'user':user, 'redirect_url': host_url } path = '/html/alert.html' return template_select.render(path, template_values)
def get(req,mode,header_enable): is_iphone=CssDesign.is_iphone(req) template_values = { 'host': "./", 'is_iphone': is_iphone, 'user': users.get_current_user(), 'redirect_url': req.request.path, 'mode': mode, 'header_enable': header_enable } path = '/html/portal.html' req.response.out.write(template_select.render(path, template_values))
def _render_page(self,template_values): host="http://"+MappingId.mapping_host(self.request.host)+"/"; template_values['host']=host template_values['is_iphone']=CssDesign.is_iphone(self) template_values['is_tablet']=CssDesign.is_tablet(self) template_values['tag_display_n']=40 template_values['is_maintenance']=MaintenanceCheck.is_appengine_maintenance() if(template_values['user']): template_values['login_flag']=1 else: template_values['login_flag']=0 render=template_select.render("/html/pinterest.html", template_values) #render=strip_spaces_between_tags(render) self.response.out.write(render)
def get(self): user = users.get_current_user() user_name=ShowEntry.get_user_name(user) bbs_list=[] if(user): user_id=user.user_id() bookmark_bbs_list=ApiBookmark.bookmark_get_bbs_list(self,user_id) rental_bbs_list=ApiUser.user_get_bbs_list(self,user_id) if(rental_bbs_list): bbs_list.extend(rental_bbs_list) if(bookmark_bbs_list): bbs_list.extend(bookmark_bbs_list) sample_bbs={ "title":"サンプルお絵描き掲示板", "key":MappingId.mapping("sample") } bbs_list.append(sample_bbs) temp_key=self.request.get("temp_key") args=None if(temp_key): temp=db.get(temp_key) if(temp.args): args=temp.args target_bbs=self.get_target_bbs(args); if(target_bbs): bbs_list=target_bbs template_values={ 'host':"./", 'is_iphone':CssDesign.is_iphone(self), 'is_tablet':CssDesign.is_tablet(self), 'is_english':CssDesign.is_english(self), 'temp_key':temp_key, 'redirect_url':self.request.path+"?temp_key="+temp_key, 'user':user, 'bbs_list':bbs_list, 'args':args, 'user_name':user_name } render=template_select.render("/html/upload_temp.html", template_values) self.response.out.write(render)
def get(self): is_iphone=CssDesign.is_iphone(self) page=1 page_unit=20 if(self.request.get("page")): page=int(self.request.get("page")) rank=Ranking.get_or_insert(BbsConst.THREAD_RANKING_KEY_NAME) ranking_mode=self.request.get("mode") ranking_id_list=rank.user_id_ranking_list[(page-1)*page_unit:page*page_unit] ranking_list=[] for user_id in ranking_id_list: obj=ApiObject.get_bookmark_of_user_id(user_id) if(obj): if(obj.disable_rankwatch): ranking_list.append(None) continue obj=ApiObject.create_user_object(self,obj) ranking_list.append(obj) user = users.get_current_user() user_rank=0 if(user): rank=Ranking.get_by_key_name(BbsConst.THREAD_RANKING_KEY_NAME) if(rank): user_rank=rank.get_user_rank(user.user_id()) template_values = { 'host': "./", 'is_iphone': is_iphone, 'user': user, 'user_rank': user_rank, 'redirect_url': self.request.path, 'mode': "ranking", 'header_enable': False, 'ranking_list': ranking_list, 'ranking_mode': ranking_mode, 'page': page, 'page_unit': page_unit } path = '/html/portal.html' self.response.out.write(template_select.render(path, template_values))
def get(self): host_url="http://"+MappingId.mapping_host(self.request.host)+"/" bbs_key=self.request.get("bbs_key") thread_key=self.request.get("thread_key") try: bbs = db.get(self.request.get("bbs_key")) thread = db.get(self.request.get("thread_key")) except: bbs = None thread = None if(bbs==None or thread==None): self.response.out.write(Alert.alert_msg("スレッドが見つかりません。",self.request.host)) return image=thread.image_key#db.get(thread.image); width=400 height=400 if(image.width): width=image.width if(image.height): height=image.height if(self.request.get("width")): width=self.request.get("width") if(self.request.get("height")): height=self.request.get("height") if(CssDesign.is_iphone(self)==1): if(width>=300): height=300*height/width width=300 template_values = { 'host': host_url, 'bbs': bbs, 'bbs_key': bbs_key, 'thread': thread, 'thread_key': thread_key, 'width': width, 'height': height } path = '/html/moper/moper_embedded.htm' self.response.out.write(template_select.render(path, template_values))
def get(self,bbs_or_css_key,mode): bbs=None user_css=None try: if(mode=="css"): #bbs apply bbs = db.get(bbs_or_css_key) if(bbs and bbs.design_template_no and bbs.design_template_no==32767): if(bbs.css): user_css=bbs.css else: #test apply user_css = db.get(bbs_or_css_key) except: bbs=None user_css=None if(bbs==None and user_css==None): self.error(404) return is_iphone=CssDesign.is_iphone(self) is_tablet=CssDesign.is_tablet(self) template_values = { 'bbs':bbs, 'user_css': user_css, 'is_iphone':is_iphone, 'is_tablet':is_tablet } path = '/tempform/style_main.htm' res=template_select.render(path, template_values) self.response.headers['Content-Type']= 'text/css' self.response.out.write(res)
def get(self): template_values = { 'host': "./" } path = '/html/dropbox.html' self.response.out.write(template_select.render(path, template_values))
def get(self): host_url=MappingId.mapping_host_with_scheme(self.request)+"/" bbs_key=self.request.get("bbs_key") thread_key=self.request.get("thread_key") try: bbs = db.get(self.request.get("bbs_key")) except: bbs=None if(bbs==None): Alert.alert_msg_with_write(self,"ブックが見つかりません。") return ipad=CssDesign.is_tablet(self) iphone=CssDesign.is_iphone(self) if(ipad or iphone): Alert.alert_msg_with_write(self,"iPhoneやiPadでは動画お絵かきツールは使用できません。") return draw_time=0 summary="" author="" title="" if(thread_key!=""): try: thread=db.get(thread_key) except: thread=None if(thread==None): Alert.alert_msg_with_write(self,"スレッドが見つかりません。") return draw_time=thread.draw_time summary=ReeditEscape.escape(thread.summary) author=ReeditEscape.escape(thread.author) title=ReeditEscape.escape(thread.title) canvas_url=self.request.get("canvas_url"); if(canvas_url!=""): canvas_url=host_url+"moper_load?id="+canvas_url force=0 canvas_width=400 canvas_height=400 if(self.request.get("canvas_width")): canvas_width=self.request.get("canvas_width") if(self.request.get("canvas_height")): canvas_height=self.request.get("canvas_height") if(self.request.get("force")): force=self.request.get("force") template_values = { 'host': host_url, 'bbs': bbs, 'thread_key': thread_key, 'bbs_key': bbs_key, 'canvas_url': canvas_url, 'canvas_width': canvas_width, 'canvas_height': canvas_height, 'force': force, 'draw_time': draw_time, 'summary': summary, 'author': author, 'title': title } path = '/html/tools/draw_window_moper.htm' self.response.out.write(template_select.render(path, template_values))
def get(self): template_values = { 'temp': 0, } path = '/html/moper/moper_guide.html' self.response.out.write(template_select.render(path, template_values))
def get(self): try: bbs=db.get(self.request.get("bbs_key")); except: bbs=None if(not bbs): Alert.alert_msg_with_write(self,"編集する掲示板が見つかりません。") return try: thread = db.get(self.request.get("thread_key")) except: thread = None try: entry = db.get(self.request.get("entry_key")) except: entry = None try: res = db.get(self.request.get("res_key")) except: res = None if(not thread and not entry and not res): Alert.alert_msg_with_write(self,"編集する対象が見つかりません。") return user = users.get_current_user() bbs_owner=not OwnerCheck.check(bbs,user) thread_owner=False if(user): if(thread): if(user.user_id()==thread.user_id): thread_owner=True if(entry): if(user.user_id()==entry.user_id): thread_owner=True if(res): if(user.user_id()==res.user_id): thread_owner=True if(not bbs_owner and not thread_owner and not OwnerCheck.is_admin(user)): Alert.alert_msg_with_write(self,"編集する権限がありません。") return summary="" postscript="" category="" if(thread): summary=thread.summary if(thread.postscript): postscript=thread.postscript summary=ReeditEscape.escape(summary); postscript=ReeditEscape.escape(postscript); category=thread.category host_url="./" design=CssDesign.get_design_object(self,bbs,host_url,1) category_list=CategoryList.get_category_list(bbs) event_list=EventList.get_event_list() template_values = { 'host': './', 'bbs': bbs, 'thread': thread, 'entry': entry, 'res': res, 'summary': summary, 'postscript': postscript, 'template_path':design["template_path"], 'css_name':design["css_name"], 'is_iphone':design["is_iphone"], 'is_tablet':design["is_tablet"], 'template_base_color':design["template_base_color"], 'user': user, 'redirect_url': self.request.path, 'edit_thread': True, 'category_list': category_list, 'event_list': event_list, 'selecting_category': category, 'res_entry_key': self.request.get("res_entry_key"), 'is_english': CssDesign.is_english(self) } path = '/html/edit_thread.html' self.response.out.write(template_select.render(path, template_values))
def get(self): SetUtf8.set() try: bbs = db.get(self.request.get("bbs_key")) except: Alert.alert_msg_with_write(self,"掲示板の取得に失敗しました。") return user = users.get_current_user() if(OwnerCheck.check(bbs,user) and not OwnerCheck.is_admin(user)): Alert.alert_msg_with_write(self,"削除する権限がありません。") return user = users.get_current_user() page=1 if(self.request.get("page")): page=int(self.request.get("page")) order="new" if(self.request.get("order")): order=self.request.get("order") limit=20 offset=(page-1)*limit query=db.Query(MesThread,keys_only=True) query.filter("bbs_key =",bbs) if(order=="new"): query.order("-create_date") else: query.order("create_date") thread_key_list=query.fetch(offset=offset,limit=limit) thread_list=[] for thread_key in thread_key_list: try: thread_list.append(db.get(thread_key)) except: continue deleted_count=self.request.get("deleted_count") category_count=self.request.get("category_count") link_count=self.request.get("link_count") if(deleted_count): deleted_count=int(deleted_count) if(category_count): category_count=int(category_count) if(link_count): link_count=int(link_count) category_list=CategoryList.get_category_list(bbs) template_values = { 'host': './', 'bbs': bbs, 'user': user, 'thread_list': thread_list, 'redirect_url': self.request.path, 'page': page, 'order': order, 'deleted_count': deleted_count, 'category_count': category_count, 'link_count': link_count, 'is_iphone': CssDesign.is_iphone(self), 'is_tablet': CssDesign.is_tablet(self), 'category_list': category_list, 'is_english': CssDesign.is_english(self) } path = '/html/edit_thread_list.html' self.response.out.write(template_select.render(path, template_values))
def get(self): SetUtf8.set() #ブックマーク制御 user = users.get_current_user() bookmark=NicoTracker.get_bookmark(user) if(self.request.get("add_bookmark")): NicoTracker.add_bookmark(bookmark,self.request.get("id"),self.request.get("title")) if(self.request.get("del_bookmark")): NicoTracker.del_bookmark(bookmark,self.request.get("id")) url_log = users.create_logout_url(self.request.uri) if(not user): url_log = users.create_login_url(self.request.uri) url = ""#http://www.nicovideo.jp/watch/sm15521745" if(self.request.get("url")): url=self.request.get("url") if(url==""): rec=None else: if(url=="update_all"): rec=self.auto_update() else: rec=self.update_url(url) play_cnt_graph="" comment_cnt_graph="" list_tbl="" if(rec): #GRAPH play_cnt_graph=NicoTracker.create_graph(rec.day_list,rec.play_cnt_list); comment_cnt_graph=NicoTracker.create_graph(rec.day_list,rec.comment_cnt_list); #TABLE no=0 for day in rec.day_list: list_tbl+="<TR><TD>"+day+"</TD>" list_tbl+="<TD>"+rec.play_cnt_list[no]+"</TD>" list_tbl+="<TD>"+rec.comment_cnt_list[no]+"</TD></TR>\n" no=no+1 query=NicoTrackerRec.all() rec_cnt=query.count(limit=100000) rec_list=query.order("-play_cnt_now").fetch(limit=10) query=NicoTrackerBookmark.all() book_cnt=query.count() bookmark_list=[] if(bookmark): for i in range(0,len(bookmark.bookmark_id_list)): playcnt=0 try: playcnt=NicoTrackerRec.all().filter("id =",bookmark.bookmark_id_list[i])[0].play_cnt_now except: playcnt=0 if(playcnt==None): playcnt=0 url_base="http://www.nicovideo.jp/watch/" #del_button="<div class='delete_button' onClick='click_delete(\"" del_button="<img src='static_files/nicotra/book.gif' onClick='click_delete(\"" del_button+=bookmark.bookmark_id_list[i] del_button+="\",\""+url+"\");'>"; #del_button+="del</div>"; title=bookmark.bookmark_title_list[i].split(" ‐ ")[0] #if(len(title)>=30): # title=title[0:30]+"…" bookmark_list.append(del_button+"<A HREF='nico_tracker?url="+url_base+bookmark.bookmark_id_list[i]+"'>"+title+"</A> "+str(playcnt)+"[play] "); is_anim_icon=self.request.get("is_anim_icon") host_url =self.request.host template_values = { 'host': host_url, 'rec': rec, 'rec_list': rec_list, 'url': url, 'play_cnt_graph': play_cnt_graph, 'comment_cnt_graph': comment_cnt_graph, 'list_tbl': list_tbl, 'rec_cnt': rec_cnt, 'user': user, 'bookmark_list': bookmark_list, 'url_log': url_log, 'is_anim_icon': is_anim_icon, 'book_cnt': book_cnt } path = '/html/nico_tracker/nico_tracker.html' render=template_select.render(path, template_values) self.response.out.write(render)
def get(self): SetUtf8.set() page_name = "" mode = "access" if self.request.get("mode"): mode = self.request.get("mode") bbs = None user = None if page_name == "": try: bbs = db.get(self.request.get("bbs_key")) except: bbs = None if bbs == None: Alert.alert_msg_notfound(self) return user = users.get_current_user() if user: if bbs.user_id != user.user_id(): user = None page_name = bbs.bbs_name if self.request.get("start_date"): start_date = self.request.get("start_date") if not self.validate_date(start_date): Alert.alert_msg_with_write(self, "日付指定は0000-00-00形式である必要があります。") return else: start_date = str(datetime.date.today() + datetime.timedelta(days=-31)) if self.request.get("end_date"): end_date = self.request.get("end_date") if not self.validate_date(end_date): Alert.alert_msg_with_write(self, "日付指定は0000-00-00形式である必要があります。") return else: end_date = str(datetime.date.today() + datetime.timedelta(days=-1)) start_day = datetime.datetime.strptime(start_date, "%Y-%m-%d") end_day = datetime.datetime.strptime(end_date, "%Y-%m-%d") if start_day > end_day: Alert.alert_msg_with_write(self, "終了日よりも開始日の方が大きくなっています。") return bbs_id = bbs.short is_admin = OwnerCheck.is_admin(user) if is_admin: if self.request.get("bbs_id"): bbs_id = self.request.get("bbs_id") if bbs.short != bbs_id: page_name = bbs_id page_list = None ref_list = None keyword_list = None access_list = None show_analyze = False if user or bbs.short == "sample": show_analyze = True if show_analyze: try: result = self.get_analytics(mode, bbs_id, start_date, end_date) except: time.sleep(1) try: result = self.get_analytics(mode, bbs_id, start_date, end_date) except: Alert.alert_msg_with_write(self, "Analytics APIへのアクセスに失敗しました。リロードして下さい") logging.error("failed analytics api") return if mode == "page": page_list = result if mode == "ref": ref_list = result if mode == "keyword": keyword_list = result if mode == "access": access_list = result quota_error = mode == "access" and not access_list redirect_api = ( "analyze?start_date=" + start_date + "&end_date=" + end_date + "&bbs_id=" + bbs_id + "&bbs_key=" + str(bbs.key()) + "&" ) host_url = "./" template_values = { "host": host_url, "mode": mode, "redirect_api": redirect_api, "quota_error": quota_error, "bbs": bbs, "bbs_id": bbs_id, "page_name": page_name, "is_admin": is_admin, "user": user, "show_analyze": show_analyze, "ref_list": ref_list, "page_list": page_list, "keyword_list": keyword_list, "access_list": access_list, "start_date": start_date, "end_date": end_date, "is_iphone": CssDesign.is_iphone(self), "is_tablet": CssDesign.is_tablet(self), "is_english": CssDesign.is_english(self), "redirect_url": self.request.path, } path = "/html/analyze.html" self.response.out.write(template_select.render(path, template_values))
def ret(main,mode,app_key): is_play=0 if(mode=="play"): is_play=1 is_run=0 if(mode=="run"): is_run=1 is_code=0 if(mode=="code"): is_code=1 is_plugin=0 if(mode=="plugin"): is_plugin=1 is_portal=1 if(is_play or is_code or is_run or is_plugin): is_portal=0 app_list=AppPortal.get_app_list(is_portal) app=None if(app_key and (is_play or is_code or is_run or is_plugin)): app=db.get(app_key) plugin_code=AppPortal.get_plugin_code(main,app_key,app) app_code="" if(app): if(app.mode==2): app_code=app.css_code else: app_code=app.js_code if(AppPortal.add_support_forum(main,app)): return if(is_code): app_code=cgi.escape(app_code.encode("utf-8")) user = users.get_current_user() logined=0 if(user): logined=1 if user: url_log = users.create_logout_url(main.request.url) else: url_log = users.create_login_url(main.request.url) #iPhoneモードかどうか is_iphone=CssDesign.is_iphone(main) template_values = { 'host': "./", 'hot_app_list': app_list["hot_app"], 'hot_plugin_list': app_list["hot_plugin"], 'hot_css_list': app_list["hot_css"], 'new_app_list': app_list["new_app"], 'is_play': is_play, 'is_portal': is_portal, 'is_code': is_code, 'app_code': app_code, 'app': app, 'plugin_code': plugin_code, 'url_log': url_log, 'logined': logined, 'is_iphone': is_iphone, 'user': users.get_current_user(), 'redirect_url': main.request.path } url='/html/app.html' if(is_run or is_plugin): url='/html/app/app_run.html' path = url main.response.out.write(template_select.render(path, template_values))
def load_initial_css_code(bbs): template_values = { 'bbs': bbs } path = '/tempform/style_user.htm' return template_select.render(path, template_values)
def get(self): user = users.get_current_user() is_admin=0 is_high_admin=0 account="ログインしていない状態" if(user): account="アカウント"+user.email() is_admin=1 if(OwnerCheck.is_admin(user)): is_high_admin=1 SetUtf8.set() thread_query = MesThread.all().order('-create_date') cnt=thread_query.count(10000) thread_page_unit=12 thread_page=1 if self.request.get("page"): thread_page = int(self.request.get("page")) thread_page_list=PageGenerate.generate_page(thread_page,cnt,thread_page_unit) comment_page=1 only_comment=0 if self.request.get("comment_page"): comment_page = int(self.request.get("comment_page")) only_comment=1 if(not only_comment): thread_query.filter("illust_mode =",1) thread=thread_query.fetch(limit=thread_page_unit,offset=(thread_page-1)*thread_page_unit) new_moper_query=MesThread.all().order("-create_date") new_moper_query.filter("illust_mode =",2) new_moper=new_moper_query.fetch(limit=12) entry=None try: entry_query = Entry.all().order('-create_date') entry_query.filter("illust_reply =",1) entry=entry_query.fetch(limit=thread_page_unit,offset=(thread_page-1)*thread_page_unit) except: None else: thread=None new_moper=None entry=None comment=None try: comment_unit=7 comment_query = Entry.all().order('-create_date') comment_query.filter("del_flag =", 1) comment=comment_query.fetch(limit=comment_unit,offset=comment_unit*(comment_page-1)) except: None if(not only_comment): new_bbs_count=SiteAnalyzer.create_graph(self,0); new_illust_count=SiteAnalyzer.create_graph(self,1); new_entry_count=SiteAnalyzer.create_graph(self,2); new_user_count=SiteAnalyzer.create_graph(self,3); today_start = datetime.datetime.today() week_start = today_start - datetime.timedelta(days=7) month1_start = today_start - datetime.timedelta(days=31) weekly=Bbs.all().filter("date >=",week_start).count(limit=10000) monthly=Bbs.all().filter("date >=",month1_start).count(limit=10000) else: new_bbs_count=0 new_illust_count=0 new_entry_count=0 new_user_count=0 weekly=0 monthly=0 if os.environ["SERVER_SOFTWARE"].find("Development")!=-1: new_moper=[] host_url ="./" template_values = { 'host': host_url, 'threads':thread, 'moper_threads':new_moper, 'entries':entry, 'comment':comment, 'new_bbs_count':new_bbs_count, 'new_entry_count':new_entry_count, 'new_illust_count':new_illust_count, 'new_user_count':new_user_count, 'is_admin':is_admin, 'is_high_admin': is_high_admin, 'account':account, 'url_logout':users.create_logout_url("./admin"), 'url_login':users.create_login_url("./admin"), 'page_list':thread_page_list, 'page_url_base':"./admin?page=", 'page':thread_page, 'weekly':weekly, 'monthly':monthly, 'comment_page':comment_page, 'only_comment': only_comment } path = '/html/admin.html' render=template_select.render(path, template_values) self.response.out.write(render)
def get(self,bbs_key): #日本語対応 SetUtf8.set() #英語版かどうか is_english=CssDesign.is_english(self) #メンテナンス中かどうか is_maintenance=0 if(MaintenanceCheck.is_appengine_maintenance()): is_maintenance=1 #掲示板を取得 bbs=ShowBbs.get_bbs(self,bbs_key) if(bbs==None): return #掲示板削除チェック if(bbs.del_flag) : if(is_english): Alert.alert_msg_with_write(self,"This bbs was deleted.") else: Alert.alert_msg_with_write(self,"この掲示板は削除されました。") return #ページ取得 page = 1 if self.request.get("page"): try: page = int(self.request.get("page")) except: Alert.alert_msg_with_write(self,"ページ番号が異常です。") return if page<1 : page=1 #描画順を取得 order=ShowBbs.get_order(self,bbs) #カテゴリ取得 category="" if(self.request.get("category")): category=self.request.get("category") #スレッド一覧を取得 thread_query=ShowBbs.get_thread_query(bbs,category,order) #1ページのイラスト数を取得 col_num=ShowBbs.get_col_num(bbs,order) #スレッド数とスレッドを取得 count_limit=(BbsConst.PAGE_LIST_COUNT+page)*col_num #ページ番号生成用にしか使わないのでページ番号のMaxがわかれば良い if(category==""): threads_num = bbs.cached_threads_num else: threads_num = thread_query.count(limit=count_limit) all_threads = thread_query.fetch(limit=col_num, offset=(page-1)*col_num) #返信イラストを取得 all_entries = None #if(order=="thumbnail"): # all_entries=ShowBbs.get_illust_reply(bbs,page,col_num) # if(threads_num<all_entries["count"]): # threads_num=all_entries["count"] # all_entries=all_entries["entry"] #ホストURLを取得 host_url="http://"+MappingId.mapping_host(self.request.host)+"/"; #URLを作成 mapped_category=urllib.quote(category.encode('utf-8')) page_url=MappingId.get_usr_url(host_url,bbs) page_url_base=MappingId.get_usr_url(host_url,bbs)+'?order='+order+'&category='+mapped_category+'&page=' page_url_order_base=MappingId.get_usr_url(host_url,bbs)+'?page=1&category='+mapped_category+'&order=' page_url_category_base=MappingId.get_usr_url(host_url,bbs)+'?page=1&order='+order+"&category=" #ページリストを作成 page_list=PageGenerate.generate_page(page,threads_num,col_num) #ログインユーザを取得 user = users.get_current_user() logined=0 if(user): logined=1 owner=user if(OwnerCheck.check(bbs,user)): owner=None #サイドバーコメントを取得 side_comment=RecentCommentCache.get_entry(bbs) side_thread=RecentCommentCache.get_thread(bbs) #カテゴリ一覧を取得 category_list=None if(bbs.category_list): if(bbs.category_list!=""): category_list=CategoryList.get_category_list(bbs) #bbs.category_list.split(",") #ページデザインを取得 css_key=self.request.get("css_key") design=CssDesign.get_design_object(self,bbs,host_url,0) #サイドバー一覧を作成 sidebar_list=ShowBbs.get_sidebar(bbs,category_list,side_comment,side_thread) #新規スレッドを作成できるか can_create_thread=ShowBbs.get_can_create_thread(bbs,user,logined) can_create_new_image=ShowBbs.get_can_create_new_image(bbs,owner) #スレッドを全て取得 all_threads_cached=ApiObject.get_cached_object_list(all_threads) #コメントフォームを表示するか show_comment_form=1 if(bbs.comment_login_require and not(owner)): show_comment_form=0 #フルコメントデバッグ if(self.request.get("full_comment")): bbs.enable_full_comment=1 #フルフラット表示をデフォルト化 if(bbs.bbs_mode==BbsConst.BBS_MODE_NO_IMAGE): bbs.enable_full_flat=0 bbs.enable_full_comment=0 else: bbs.enable_full_flat=1 #bbs.enable_full_comment=1 #デフォルト化を止める #コメントを全て取得 #user_name="" user_name=ShowEntry.get_user_name(user) if(bbs.enable_full_comment): admin_user=OwnerCheck.is_admin(user) ShowEntry.render_comment_list(self,all_threads_cached,host_url,bbs,show_comment_form,logined,admin_user,user_name,user) #デザインの編集ができるか can_edit_design=False is_admin=OwnerCheck.is_admin(user) if(owner or (is_admin and bbs.bbs_mode==BbsConst.BBS_MODE_EVERYONE)): can_edit_design=True #infinite_scrollを使用するかどうか infinite_scroll=False #if(bbs.bbs_mode!=BbsConst.BBS_MODE_NO_IMAGE):# and design["is_iphone"]): infinite_scroll=True #infinite_scrollの2ページ目以降 contents_only=0 if(self.request.get("contents_only")=="1"): contents_only=1 #メッセージ message=memcache.get(BbsConst.OBJECT_BBS_MESSAGE_HEADER+str(bbs.key())) #カウントアップコメント if(bbs.counter): bbs.counter.new_day_update() count_up_comment=None #if(bbs.dont_count_owner): # if(owner): # count_up_comment="管理人" # else: # count_up_comment="ユーザ" #カテゴリリスト show_category_list=False if(self.request.get("show_category_list")=="1"): show_category_list=True #レンダリング template_values = { 'host': host_url, 'usrhost': MappingId.get_usr_url(host_url,bbs), 'threads': all_threads_cached, 'all_entries':all_entries, 'bbs':bbs, 'new_url': 'create_new_thread', 'page':page, 'page_url':page_url, 'page_url_base':page_url_base, 'order':order, 'page_url_order_base':page_url_order_base, 'page_list':page_list, 'user':user, 'owner': owner, 'side_comment':side_comment, 'side_thread':side_thread, 'logined':logined, 'can_create_thread':can_create_thread, 'category_list':category_list, 'page_url_category_base':page_url_category_base, 'now_category':category, 'can_create_new_image':can_create_new_image, 'template_path':design["template_path"], 'css_name':design["css_name"], 'is_iphone':design["is_iphone"], 'is_tablet':design["is_tablet"], 'template_base_color':design["template_base_color"], 'sidebar_list': sidebar_list, 'is_maintenance': is_maintenance, 'css_key': css_key, 'redirect_url': self.request.path, 'show_comment_form': show_comment_form, 'user_name': user_name, 'is_admin': is_admin, 'can_edit_design': can_edit_design, 'infinite_scroll': infinite_scroll, 'infinite_scroll_selecter': ".entry", 'contents_only': contents_only, 'message': message, 'is_english': is_english, 'count_up_comment': count_up_comment, 'show_category_list': show_category_list } path = "/html/"+design["base_name"] self.response.out.write(template_select.render(path, template_values)) if(is_maintenance): return CounterWorker.update_counter(self,bbs,None,owner)
def ret(req,page): if(req.request.get("redirect")): tab="" if(req.request.get("tab")): tab="&tab="+req.request.get("tab") req.redirect(str(req.request.get("redirect")+tab)) return user = users.get_current_user() my_app_list=None if(user): my_app_list=AppCode.all().filter("user_id =",user.user_id()).fetch(limit=100,offset=0) if user: url_log = users.create_logout_url(req.request.url) else: url_log = users.create_login_url(req.request.url) app_key=None if(req.request.get("app_key")): app_key=req.request.get("app_key") bbs_key=None if(req.request.get("bbs_key")): bbs_key=req.request.get("bbs_key") app=None if(app_key): app=db.get(app_key) app_code="" if(app): app_code=app.js_code css_code="" if(app): css_code=app.css_code if(not css_code or css_code==""): css_code=DevPortal.load_initial_css_code(None) if(app_code==""): if(app and app.mode==BbsConst.APP_MODE_PLUGIN): app_code=AppPortal.load_sample_app("feedplugin.js") else: app_code=AppPortal.load_sample_app("helloworld.js") if(app_code=="puzzle"): app_code=AppPortal.load_sample_app("15puzzle.js") if(app_code=="feed"): app_code=AppPortal.load_sample_app("feedplugin.js") if(page=="edit"): app_code=cgi.escape(app_code.encode("utf-8")) sample_code=AppPortal.load_sample_app("helloworld.js") sample_code=cgi.escape(sample_code.encode("utf-8")) sample_code_plugin=AppPortal.load_sample_app("feedplugin.js") sample_code_plugin=cgi.escape(sample_code_plugin.encode("utf-8")) sample_code_css=DevPortal.load_initial_css_code(None) sample_code_css=cgi.escape(sample_code_css.encode("utf-8")) logined=0 if(user): logined=1 host_url="http://"+MappingId.mapping_host(req.request.host)+"/"; template_values = { 'host': host_url, 'my_app_list': my_app_list, 'sample_code': sample_code, 'sample_code_plugin': sample_code_plugin, 'sample_code_css': sample_code_css, 'page': page, 'app': app, 'app_code': app_code, 'css_code': css_code, 'url_log': url_log, 'logined': logined, 'bbs_key': bbs_key, 'user': users.get_current_user(), 'redirect_url': req.request.path } url='/html/dev.html' if(page=="edit"): url='/html/dev/dev_edit.html' if(page=="info"): url='/html/dev/dev_info.html' path = url req.response.out.write(template_select.render(path, template_values))
def tool(self,user): bbs=None bbs_key="" thread_key="" if(self.request.get("key")=="always"): try: room_key=ChatRoom.all().filter("is_always =",1).fetch(1)[0].key() except: room_key=None else: room_key=self.request.get("key") if(not room_key): Alert.alert_msg_with_write(self,"ルームキーが必要です。") return ipad=CssDesign.is_tablet(self) viewmode=self.request.get("viewmode") password=self.request.get("pass") try: room=ChatRoom.get(room_key)#db.get(room_key) except: room=None alert_footer=""#<BR><A HREF='./chat'><IMG SRC='./static_files/chat/logo.png'/></A>" login_message="" if(not user): login_url=users.create_login_url(self.request.url) login_message="<BR><A HREF='"+login_url+"' class='g-button'>Googleアカウントでログイン</A><BR>" if(not room): Alert.alert_msg_with_write(self,"このチャットルームは終了されています。"+alert_footer) return if(room.password and room.password!=password): Alert.alert_msg_with_write(self,"チャットルームのパスワードが一致しません。"+alert_footer) return #if(not user): # Alert.alert_msg_with_write(self,"チャットルームへの参加にはログインが必要です。<BR>"+login_message+alert_footer) # return canvas_width=room.canvas_width canvas_height=room.canvas_height if(user): user_id=user.user_id() #user_name=self.get_user_name(user) else: user_id=0 user_name=self.request.get("name") server_time=Chat.get_sec(datetime.datetime.now()) if(user): bbs_list=Bbs.all().filter("user_id =",user.user_id()).filter("del_flag =",0).fetch(limit=10) else: bbs_list=None quote_name=urllib.quote_plus(str(user_name)).replace("%","-") client_id=str(user_id)+"_"+str(server_time)+"_"+quote_name token = channel.create_channel(client_id) #排他制御が必要 Chat.add_user(room_key,client_id) template_values = { 'host': "./", 'bbs': bbs, 'bbs_key': bbs_key, 'thread_key': thread_key, 'entry_key': "", 'draw_time': "", 'canvas_width': canvas_width, 'canvas_height': canvas_height, 'canvas_url': "", 'reply': False, 'summary': "", 'author': "", 'title': "", 'chat': room_key, 'ipad': ipad, 'user_id':user_id, 'user_name':user_name, 'server_time':server_time, 'bbs_list':bbs_list, 'logined':True, 'viewmode':viewmode, 'room_name':room.name, 'token':token, 'client_id':client_id, 'is_english':CssDesign.is_english(self) } path = '/html/tools/draw_window_ipad.htm' self.response.out.write(template_select.render(path, template_values))
def get(self,bbs_key,thread_key): SetUtf8.set() #ホストチェック if SpamCheck.is_deny(self.request): self.response.set_status(401) return #英語版かどうか is_english=CssDesign.is_english(self) #BBSを取得 bbs_key=MappingId.mapping(bbs_key) bbs=ApiObject.get_cached_object(bbs_key) if(bbs == None): Alert.alert_msg_notfound(self) return #BBSが削除されていた場合 if(bbs.del_flag) : if(is_english): Alert.alert_msg_with_write(self,"This bbs was deleted.") else: Alert.alert_msg_with_write(self,"このBBSは削除されました。") return #ページ番号を取得 col_num = 10 page = 1 if self.request.get("page"): page = int(self.request.get("page")) if page < 1: page=1 #メンテナンス画面 is_maintenance=0 if(MaintenanceCheck.is_appengine_maintenance()): is_maintenance=1 #オーダー取得 order="update" if(bbs.default_comment_order==1): order="new" if self.request.get("order"): order=self.request.get("order") #スレッド取得 thread=ShowThread.get_thread(bbs,thread_key) if(thread == None): Alert.alert_msg_notfound(self) return #コメント数を更新 if(bbs.page_comment_n): col_num=bbs.page_comment_n if(self.request.get("limit")): col_num=int(self.request.get("limit")) #コメントの一覧を取得 query=ShowThread.get_comment_query(thread,order) entry_num = query.count() if(entry_num==0): com_list_ = [] else: com_list_ = query.fetch(limit=col_num, offset=(page-1)*col_num) #検索 search="" if(self.request.get("search")): search=self.request.get("search") query=""+search+' thread_key:"'+str(thread.key())+'"' com_list_=SearchThread.search(query,page,col_num,BbsConst.SEARCH_ENTRY_INDEX_NAME) #実体への変換 com_list_=ApiObject.get_cached_object_list(com_list_) #現在のスレッドへのURLを取得 host_url=MappingId.mapping_host_with_scheme(self.request)+"/" #編集モードか user = users.get_current_user() edit_flag = 0 if(not OwnerCheck.check(bbs,user)): edit_flag = 1 logined=0 if(user): logined=1 owner=user if(OwnerCheck.check(bbs,user)): owner=None admin_user=OwnerCheck.is_admin(user) #ページリンクを作成 page_url_base = MappingId.get_usr_url(host_url,bbs)+thread_key+'.html?page=' page_list=ShowThread.create_page_list(page,entry_num,col_num) #掲示板のデザインを取得 design=CssDesign.get_design_object(self,bbs,host_url,1) #コメントフォームを取得する show_comment_form=1 if(bbs.comment_login_require and not(owner)): show_comment_form=0 #名前取得 user_name=ShowEntry.get_user_name(user) #自分のイラストか my_illust=False if(user and thread.user_id==user.user_id()): my_illust=True #IPを表示するかどうか show_ip=False if(self.request.get("show_ip") and (owner or admin_user)): show_ip=True #コメントのレンダリング comment=ShowEntry.render_comment(self,host_url,bbs,thread,com_list_,edit_flag,bbs_key,logined,show_comment_form,admin_user,user_name,user,show_ip) #凍結されているか frozen=ApiObject.is_frozen_thread(thread) #拍手が有効かどうか applause_enable=not (user and thread.user_id and thread.user_id==user.user_id()) #メッセージ message=memcache.get(BbsConst.OBJECT_THREAD_MESSAGE_HEADER+str(thread.key())) #関連イラスト related=self._get_related(bbs,thread,design["is_iphone"],design["is_tablet"]) #スパム対策 force_login_to_create_new_image=BbsConst.FORCE_LOGIN_TO_CREATE_NEW_IMAGE force_login_to_create_new_comment=BbsConst.FORCE_LOGIN_TO_CREATE_NEW_COMMENT #描画 template_values = { 'host': host_url, 'usrhost': MappingId.get_usr_url(host_url,bbs), 'bbs': bbs, 'bbs_str_key': str(bbs.key()), 'thread': thread, 'edit_flag':edit_flag, 'url': 'edit', 'url_linktext': 'edit blogs', 'bbs_key': bbs_key, 'page':page, 'page_url_base':page_url_base, 'page_list':page_list, 'logined':logined, 'user':user, 'owner':owner, 'my_illust':my_illust, 'template_path':design["template_path"], 'css_name':design["css_name"], 'is_iphone':design["is_iphone"], 'is_tablet':design["is_tablet"], 'template_base_color':design["template_base_color"], 'admin_user':admin_user, 'order':order, 'is_maintenance':is_maintenance, 'redirect_url': self.request.path, 'comment':comment, 'show_comment_form':show_comment_form, 'user_name':user_name, 'search': search, 'limit': col_num, 'frozen': frozen, 'applause_enable': applause_enable, 'message': message, 'is_english': is_english, 'related': related, 'show_ip': show_ip, 'force_login_to_create_new_image': force_login_to_create_new_image, 'force_login_to_create_new_comment': force_login_to_create_new_comment } path = "/html/"+design["base_name"] self.response.out.write(template_select.render(path, template_values)) CounterWorker.update_counter(self,bbs,thread,owner)
def get(self): celsys=0 host_url="http://"+MappingId.mapping_host(self.request.host)+"/" bbs=None try: bbs = db.get(self.request.get("bbs_key")) except: bbs=None if(bbs==None): Alert.alert_msg_with_write(self,"イラストの投稿画面のURLが変更されています。掲示板からイラストを描くボタンをクリックして下さい。") return ipad=CssDesign.is_tablet(self) iphone=CssDesign.is_iphone(self) if(not ipad and not iphone): if(self.request.get("ipad") and self.request.get("ipad")=="1"): ipad=1 thread_key=self.request.get("thread_key") entry_key=self.request.get("entry_key") category_list=CategoryList.get_category_list(bbs) event_list=EventList.get_event_list() user = users.get_current_user() logined=0 if(user): logined=1 is_reply=self.request.get("reply") wacom2=True #ipad=1 #掲示板のデザインを取得 design=CssDesign.get_design_object(self,bbs,host_url,1) #英語版かどうか is_english=CssDesign.is_english(self) #基本情報設定 template_values = { 'host': host_url, 'bbs': bbs, 'bbs_key': self.request.get("bbs_key"), 'thread_key': thread_key, 'entry_key': entry_key, 'draw_time': 0, 'canvas_width': int(self.request.get("canvas_width")), 'canvas_height': int(self.request.get("canvas_height")), 'canvas_url': self.request.get("canvas_url"), 'reply': is_reply, 'celsys': celsys, 'category_list': category_list, 'is_png': 0, 'summary': "", 'author': "", 'title': "", 'ipad': ipad, 'logined': logined, 'template_path':design["template_path"], 'css_name':design["css_name"], 'is_iphone':design["is_iphone"], 'template_base_color':design["template_base_color"], 'version': self.request.get("version"), 'wacom2': wacom2, 'selecting_category': None, 'is_english': is_english, 'event_list': event_list } #上書き時のコメントの初期値を設定 if(not self.get_thread_comment(template_values,thread_key,entry_key,is_reply)): return if(not self.get_entry_comment(template_values,entry_key)): return if(ipad or iphone): path = '/html/tools/draw_window_ipad.htm' else: path = '/html/draw_window_flash_lapper.html' self.response.out.write(template_select.render(path, template_values))