-
Notifications
You must be signed in to change notification settings - Fork 1
/
Main.py
284 lines (254 loc) · 8.38 KB
/
Main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
#!-*- coding:utf-8 -*-
#!/usr/bin/env python
#---------------------------------------------------
#メイン関数とポータル関係
#copyright 2010-2012 ABARS all rights reserved.
#---------------------------------------------------
import cgi
import os
import sys
import re
import datetime
from google.appengine.ext import webapp
import template_select
from google.appengine.api import users
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
from google.appengine.api import images
from google.appengine.api import memcache
#-----------------------------------------------------------------
#DB
#-----------------------------------------------------------------
from myapp.Analyze import Analyze
from myapp.Bbs import Bbs
from myapp.Entry import Entry
from myapp.Counter import Counter
from myapp.Response import Response
from myapp.MesThread import MesThread
from myapp.BbsConst import BbsConst
from myapp.ThreadImage import ThreadImage
from myapp.SetUtf8 import SetUtf8
from myapp.RecentCommentCache import RecentCommentCache
from myapp.MappingId import MappingId
from myapp.SpamCheck import SpamCheck
from myapp.SpamDelete import SpamDelete
from myapp.AddNewThread import AddNewThread
from myapp.Alert import Alert
from myapp.OwnerCheck import OwnerCheck
from myapp.UpdateBbs import UpdateBbs
from myapp.AddEntry import AddEntry
from myapp.Admin import Admin
from myapp.AddNewBbs import AddNewBbs
from myapp.PageGenerate import PageGenerate
from myapp.Applause import Applause
from myapp.RssFeed import RssFeed
from myapp.ShowThread import ShowThread
from myapp.ShowBbs import ShowBbs
from myapp.MoveAccount import MoveAccount
from myapp.MaintenanceCheck import MaintenanceCheck
from myapp.AnalyzeAccess import AnalyzeAccess
from myapp.CssDesign import CssDesign
from myapp.ImageFile import ImageFile
from myapp.AddRes import AddRes
from myapp.UpdateThread import UpdateThread
from myapp.EditThread import EditThread
from myapp.ViolationTerms import ViolationTerms
from myapp.MappingThreadId import MappingThreadId
from myapp.DrawWindow import DrawWindow
from myapp.AddTag import AddTag
from myapp.Bookmark import Bookmark
from myapp.AddBookmark import AddBookmark
from myapp.UpdateProfile import UpdateProfile
from myapp.MyPage import MyPage
from myapp.Comic import Comic
from myapp.AppPortal import AppPortal
from myapp.ApiUser import ApiUser
from myapp.ApiBookmark import ApiBookmark
from myapp.ApiFeed import ApiFeed
from myapp.ApiJs import ApiJs
from myapp.DevPortal import DevPortal
from myapp.ApiPerpetuation import ApiPerpetuation
from myapp.EditBbs import EditBbs
from myapp.AppImage import AppImage
from myapp.SiteAnalyzer import SiteAnalyzer
from myapp.StackFeed import StackFeed
from myapp.StackFeedTweet import StackFeedTweet
from myapp.ApiObject import ApiObject
from myapp.CounterWorker import CounterWorker
from myapp.ShowIcon import ShowIcon
from myapp.CheckId import CheckId
from myapp.Ranking import Ranking
from myapp.ApiPacked import ApiPacked
from myapp.Pinterest import Pinterest
from myapp.DelThread import DelThread
from myapp.DelBbs import DelBbs
from myapp.DelEn import DelEn
from myapp.DelRes import DelRes
from myapp.RedirectBbs import RedirectBbs
from myapp.RedirectThread import RedirectThread
from myapp.VisibilityChangeEntry import VisibilityChangeEntry
from myapp.EditThreadList import EditThreadList
from myapp.SearchTag import SearchTag
from myapp.UploadTemp import UploadTemp
from myapp.AnalyticsGet import AnalyticsGet
from myapp.EventList import EventList
from myapp.RankingPortal import RankingPortal
from myapp.SpamCheck import SpamCheck
#-----------------------------------------------------------------
#ポータル
#-----------------------------------------------------------------
class MainPage(webapp.RequestHandler):
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))
class Portal(webapp.RequestHandler):
@staticmethod
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))
class Terms(webapp.RequestHandler):
def get(self):
Portal.get(self,"terms",False)
class GuidePage(webapp.RequestHandler):
def get(self):
user=users.get_current_user()
if(BbsConst.PINTEREST_MODE):
if((user and OwnerCheck.is_admin(user)) or BbsConst.PINTEREST_MODE==2):
Pinterest.get_core(self,Pinterest.PAGE_MODE_GUIDE)
return
Portal.get(self,"guide",True)
class ShowBookmark(webapp.RequestHandler):
def get(self):
return Pinterest.get_core(self,Pinterest.PAGE_MODE_BOOKMARK)
#-----------------------------------------------------------------
#振り分け
#-----------------------------------------------------------------
application = webapp.WSGIApplication(
[('/', MainPage),
('/pinterest', Pinterest),
(r'/usr/(.*)/(.*)\.html',ShowThread),
(r'/usr/(.*)/',ShowBbs),
(r'/usr/(.*)/index.xml',RssFeed),
(r'/(.*)/(.*)\.html',ShowThread),
(r'/(.*)/',ShowBbs),
(r'/(.*)/index.xml',RssFeed),
('/guide', GuidePage),
('/bbs_index', RedirectBbs),
(r'/css/(.*)\.(css)',CssDesign),
(r'/css/(.*)\.(key)',CssDesign),
(r'/(img)/(.*)\.(jpg)',ImageFile),
(r'/(img)/(.*)\.(png)',ImageFile),
(r'/(img)/(.*)\.(txt)',ImageFile),
('/(thumbnail)/([^\.]*)\.(jpg)', ImageFile),
('/(thumbnail)/([^\.]*)\.(gif)', ImageFile),
('/(thumbnail)/([^\.]*)\.(png)', ImageFile),
('/(thumbnail2)/([^\.]*)\.(jpg)', ImageFile),
(r'/(tile)/(.*)\.(png)',ImageFile),
('/add_thread', AddNewThread),
('/add_bbs', AddNewBbs),
('/show_thread', RedirectThread),
('/add_entry', AddEntry),
('/del_ent', DelEn),
('/vis_ent', VisibilityChangeEntry),
('/del_bbs', DelBbs),
('/upl_all', AddNewThread),
('/upl_temp', UploadTemp),
('/draw', DrawWindow),
('/draw_beta', DrawWindow),
('/del_thread', DelThread),
('/edit_bbs', EditBbs),
('/edit_thread_list', EditThreadList),
('/update_bbs', UpdateBbs),
('/edit_thread', EditThread),
('/update_thread', UpdateThread),
('/add_res', AddRes),
('/add_tag', AddTag),
('/del_res', DelRes),
('/add_bookmark', AddBookmark),
('/(mypage)',MyPage),
('/(regist)',MyPage),
('/ajax_ranking_update',SiteAnalyzer),
('/applause',Applause),
('/analyze',AnalyzeAccess),
('/check_id',CheckId),
('/spam_check',SpamCheck),
('/spam_delete',SpamDelete),
('/admin',Admin),
('/terms',Terms),
('/search_tag',Pinterest),
('/show_bookmark',ShowBookmark),
('/move_account',MoveAccount),
('/violation',ViolationTerms),
('/update_profile',UpdateProfile),
('/show_icon',ShowIcon),
('/comic',Comic),
('/app',AppPortal),
('/app/(.*)/img/(.*)',AppImage),
('/api_feed',ApiFeed),
('/api_user',ApiUser),
('/api_bookmark',ApiBookmark),
('/api_perpetuation',ApiPerpetuation),
('/api_js',ApiJs),
('/api_packed',ApiPacked),
('/dev',DevPortal),
('/stack_feed_worker',StackFeed),
('/counter_worker',CounterWorker),
('/feed_tweet',StackFeedTweet),
('/ranking',RankingPortal),
('/event_(.*)',EventList),
],debug=False)
if __name__ == "__main__":
main()