def json(self, argv): self.manager = MovieManager(self.site, self.module) action = self.site.get_argument('action', None) if action == 'setting': post_id = self.site.get_argument('post', None) if post_id: if type(post_id) == str and re.match(r'[a-z0-9]{24}', post_id): post_id = ObjectId(post_id) mv_setting = self.site.get_argument('setting', None) if mv_setting == "complete": mv_setting = "mvc" elif mv_setting == "remove": mv_setting = "mvd" result = yield self.manager.set_user_view_post(post_id, mv_setting) if result: return '{"error":0,"success":1}' else: post_id = self.site.get_argument('post', None) if not post_id: posts_view = yield self.manager.get_user_view_post() if posts_view: post_id = [] for p in posts_view: if 'post_id' in p: post_id.append(p['post_id']) ### posts = yield self.post_json(post_id) posts_argv = [] for post in posts: posts_argv.append(self.post_argv(post)) return {"post": posts_argv} return '{"error":1,"success":0}'
def json(self, argv): self.manager = MovieManager(self.site, self.module) # action = self.site.get_argument('action', None) # get cache store cache_string = "%s" % str(self.module['_id']) result = yield self.site.cache.get(cache_string) if result and 'data' in result: return result['data'] else: posts = yield self.post_json() result = {"post": posts} # set cache store self.site.cache.set(cache_string, result, self.cache_time) return result
def json(self, argv): self.manager = MovieManager(self.site, self.module) action = self.site.get_argument('action', None) post_id = self.site.get_argument('post', None) if post_id == None: try: post_id = argv[0] except: pass if type(post_id) == str and re.match(r'[a-z0-9]{24}', post_id): post_id = ObjectId(post_id) if post_id: # update movie track post_track = self.site.get_argument('track', None) if post_track: if len(post_track) == 24: track_id = ObjectId(post_track) self.manager.set_user_view_post(track_id) # set movie view count self.manager.set_post_view(post_id) # part view if action == "part": # lock some request failure if self.site.request.headers.get( 'X-Requested-With' ) == 'XMLHttpRequest' and self.site.site_db['domain'][ 0] in self.site.request.headers.get('Referer')[:50]: mv_chap_index = self.site.get_argument('c-i', 0) mv_server_index = self.site.get_argument('s-i', 0) result = yield self.manager.get_movie_part( post_id, mv_chap_index, mv_server_index) if result: return {"post": result} # save last viewing movie chap/server/part elif action == "viewing": mv_chap = self.site.get_argument('mv-chap', -1) mv_server = self.site.get_argument('mv-server', -1) mv_part = self.site.get_argument('mv-part', -1) mv_seek = self.site.get_argument('mv-seek', 0) ### try: mv_chap = int(mv_chap) except: mv_chap = -1 ### try: mv_server = int(mv_server) except: mv_server = -1 ### try: mv_part = int(mv_part) except: mv_part = -1 ### try: mv_seek = float(mv_seek) except: mv_seek = -1 ### # print(post_id, mv_chap, mv_server, mv_part, mv_seek) self.manager.get_user_view_post_lasted(post_id, mv_chap, mv_server, mv_part, mv_seek) return '{"error":0,"success":1}' elif action == "rating": mv_rate = self.site.get_argument('rate', None) if mv_rate: # print('rate', mv_rate) mv_rate = int(mv_rate) self.manager.set_post_rating(post_id, mv_rate) return '{"error":0,"success":1}' elif action == "report": mv_report = self.site.get_argument('report', None) mv_content = self.site.get_argument('content', None) obj = report.SiteReport(self.site) # fork obj.set(mv_report, mv_content) return '{"error":0,"success":1}' else: post = yield self.post_json(argv[0]) if post: argv = self.post_argv(post) # facebook graph self.site.graph['og:url'] = argv['link'] self.site.graph['og:title'] = "%s - %s - %s" % ( argv['title'], self.site.site_db['setting']['title'], self.site.site_db['domain']) if len(argv['description']) > 10: self.site.graph[ 'og:description'] = escape.xhtml_escape( "Xem Phim %s, %s" % (argv['title'], argv['description'][:300])) if 'poster' in argv: image = argv['poster'] # elif 'trailer' in post['post']['trailer']: # image = "http://i1.ytimg.com/vi/%s/hqdefault.jpg" % post['post']['content']['video'].split('youtube.com/watch?v=',2)[1].split(r'/[#|\?]/', 1)[0] else: image = None if image: self.site.graph['og:image'] = [ ["og:image", image], ["og:image:width", "1500"], ["og:image:height", "1500"] ] else: argv = None return {"post": argv} return '{"error":1,"success":0}'
def json(self, argv): self.manager = MovieManager(self.site, self.module) action = self.site.get_argument('action', None) search = self.site.get_argument('search', None) post_skip = self.site.get_argument('skip', None) post_tab = self.site.get_argument('tab', None) post_count = int(self.site.get_argument('count', 0)) post_sort = False if search: post_id = yield self.manager.search_title_seo(search, post_count) post_sort = True else: post_id = self.site.get_argument('post', None) if post_id == None: try: post_id = argv[0] except: pass if type(post_id) == str and len(post_id) == 24: post_id = ObjectId(post_id) if action == "info": output = { 'post.title':1, 'post.subtitle':1, 'post.poster':1, 'post.director':1, 'post.stars':1, 'post.description':1, 'post.country':1, 'post.year':1, 'post.length':1, 'post.category':1, 'post.title_seo':1, 'post.trailer':1, 'post.imdb':1, # 'view.count':1, } else: output = { 'post.title':1, 'post.subtitle':1, 'post.title_seo':1, 'post.poster':1, 'post.year':1, 'post.imdb':1, 'post.length':1, # 'rating.count': 1, # 'rating.average': 1, 'view.count':1, } posts = yield self.post_json( post_id = post_id, post_skip = post_skip, post_tab = post_tab, post_count = post_count, post_sort = post_sort, output = output, ) posts_argv = [] if action == "info": for post in posts: posts_argv.append(self.info_argv(post)) else: for post in posts: posts_argv.append(self.post_argv(post)) return {"post": posts_argv, "form": {'search': search}}
def json(self, argv): self.manager = MovieManager(self.site, self.module) post_id = self.site.get_argument('post', None) if not post_id and argv and len(argv) > 0: post_id = argv[0] if type(post_id) == str and len(post_id) == 24: post_id = ObjectId(post_id) action = self.site.get_argument('action', None) if action == "findgroup": g_name = self.site.get_argument('g_name', None) groups = yield self.manager.search_post_group(g_name) if groups: result = [] for g in groups: result.append({ "id": str(g['_id']), "name": g['name'], "post": [str(p) for p in g['post']] }) return {"post": result} elif action == "groupofpost": if post_id: groups = yield self.manager.get_post_group(post_id=post_id, output={ "_id": 1, "name": 1, "post": 1 }) # print(groups) result = [] for g in groups: result.append({ "id": str(g['_id']), "name": g['name'], "post": [str(p) for p in g['post']] }) return {"post": result} elif action == "postofgroup": g_id = self.site.get_argument('g_id', None) if g_id: groups = yield self.manager.get_post_group(group_id=g_id, output={ "_id": 1, "name": 1, "post": 1 }) if groups and 'post' in groups[0]: posts = yield self.post_json(post_id=groups[0]['post']) posts_argv = [] for post in posts: posts_argv.append(self.post_argv(post)) return {"post": posts_argv} elif action == "channelofpost": if post_id: post = yield self.site.db.post.find_one({"_id": post_id}, {"channel": 1}) result = [] if post and 'channel' in post: channel = yield self.site.db.channel.find( { '_id': { "$in": post['channel'] } }, { "name": 1 }).to_list(length=30) for c in channel: result.append({ "id": str(c['_id']), "name": c['name'], }) return {"post": result} elif action == "findchannel": c_name = self.site.get_argument('c_name', None) query = {'site_id': self.site.site_db['_id']} if c_name: query['name'] = c_name channel = yield self.site.db.channel.find(query, { "name": 1 }).to_list(length=30) result = [] for c in channel: result.append({ "id": str(c['_id']), "name": c['name'], }) return {"post": result} elif type(post_id) == ObjectId: ### public/private/trash/restore post if action == "manager": post_is = self.site.get_argument('is', 'private') # public post if post_is in ["public", "private", "trash", "restore"]: timestep = int(self.site.get_argument('timestep', 0)) update = yield self.manager.set_post_access( post_id, access=post_is, timestep=timestep) if update: return '{"error": 0, "success": "%s successful!"}' % post_is # finished post elif post_is == "finished": update = yield self.manager.set_movie_finished(post_id) if update: return '{"error": 0, "success": "%s successful!"}' % post_is # unfinished post elif post_is == "unfinished": update = yield self.manager.set_movie_unfinished(post_id) if update: return '{"error": 0, "success": "%s successful!"}' % post_is # edit post elif post_is == "edit": json = self.site.get_argument('movie', None) if json: json = escape.json_decode(json) if 'chap' in json: update = yield self.manager.set_movie_chaps( json['chap'], post_id) else: update = yield self.manager.set_movie_info( json, post_id) if update: return '{"error": 0, "success": "edit successful!"}' # delete post elif post_is == "delete": post = yield self.manager.db.remove({ "_id": post_id, 'site_id': self.site.site_db['_id'], 'post.format': "mv", "type": "trash" }) if post: post = yield self.manager.db.remove({ "parent_id": post_id, 'site_id': self.site.site_db['_id'], 'post.format': "mvc" }) if post: return '{"error": 0, "success": "delete successful!"}' # join group elif post_is == "joingroup": group_id = self.site.get_argument('g_id', None) group_name = self.site.get_argument('g_name', None) yield self.manager.set_post_group(post_id, group_id, group_name) # join group elif post_is == "leavegroup": group_id = self.site.get_argument('g_id', None) yield self.manager.leave_post_group(post_id, group_id) elif post_is == "joinchannel": channel_id = self.site.get_argument('c_id', None) if type(channel_id) == str and len(channel_id) == 24: channel_id = ObjectId(channel_id) result = yield self.site.db.post.update( {"_id": post_id}, {"$push": { "channel": channel_id }}, upsert=True) if result and 'n' in result and result['n'] > 0: return '{"error": 0, "success": "edit successful!"}' elif post_is == "removechannel": channel_id = self.site.get_argument('c_id', None) if type(channel_id) == str and len(channel_id) == 24: channel_id = ObjectId(channel_id) post = yield self.site.db.post.find_one({'_id': post_id}, {"channel": 1}) if post and 'channel' in post and channel_id in post[ 'channel']: channels = [ x for x in post['channel'] if x != channel_id ] result = yield self.site.db.post.update( {"_id": post_id}, {"$set": { "channel": channels }}, upsert=True) if result and 'n' in result and result['n'] > 0: return '{"error": 0, "success": "edit successful!"}' # get post information for editor elif action == "edit": post = yield self.manager.db.find_one({'_id': post_id}, {'post': 1}) if post: return {"post": post['post']} # join search list post elif action == "search": search = self.site.get_argument('search', None) if search: try: post_count = int(self.site.get_argument('count', 10)) except Exception as e: post_count = 10 # tim danh sach post posts_id = yield self.manager.search_title_seo(search) # ko trung voi post hien co posts_id = [x for x in posts_id if x != post_id] posts = yield self.post_json(post_id=posts_id, post_tab="search", post_count=post_count) posts_argv = {p['_id']: self.post_argv(p) for p in posts} post_result = [ posts_argv[p] for p in posts_id if p in list(posts_argv.keys()) ] return {"post": post_result} ### get post content if not action: post_skip = self.site.get_argument('skip', None) # post_view = self.site.get_argument('view', None) post_tab = self.site.get_argument('tab', "new") post_count = int(self.site.get_argument('count', 10)) posts = yield self.post_json(post_id=post_id, post_skip=post_skip, post_tab=post_tab, post_count=post_count) # print(posts) posts_argv = [] for post in posts: posts_argv.append(self.post_argv(post)) # print(post_argv) return {"post": posts_argv, "tab": post_tab} return '{"error":1,"success":0}'