def startup(): db_path = os.path.dirname(settings.get('database')) cache_path = settings.get('cache') if not os.path.exists(db_path): os.makedirs(db_path) if not os.path.exists(cache_path): os.makedirs(cache_path)
def init_env(): db_path = os.path.dirname(settings.get('database')) if not os.path.exists(db_path): os.makedirs(db_path) cache_path = settings.get('cache') if not os.path.exists(cache_path): os.makedirs(cache_path) log_path = settings.get('log') if not os.path.exists(log_path): os.makedirs(log_path)
def init_logger(): logging_handlers = [ logging.handlers.TimedRotatingFileHandler(os.path.join( settings.get('log'), 'service.log'), when='D') ] if not settings.get('quiet'): logging_handlers.append(logging.StreamHandler()) logging.basicConfig( level=logging.DEBUG if settings.get('debug') else logging.INFO, format= '[%(asctime)s] (%(pathname)s:%(lineno)s) [%(levelname)s] %(name)s: %(message)s', datefmt='%m-%d %H:%M', handlers=logging_handlers)
def __init__(self, port, address, cache_path): # PyInstaller patch base_path = sys.path[0] if not hasattr(sys, 'frozen') else getattr( sys, '_MEIPASS') app_settings = { 'debug': settings.get('debug'), 'template_path': os.path.join(base_path, 'views'), 'static_path': os.path.join(base_path, 'static'), 'static_url_prefix': '/static/', 'server': self, 'ui_modules': uimodules, 'default_handler_class': NotFound, } urls.patterns.append((r'/cache/(.*)', tornado.web.StaticFileHandler, { 'path': cache_path }, 'cache')) application = Application(urls.patterns, **app_settings) try: application.listen(port, address) except OSError: logging.error('system already running.') sys.exit(0) self.application = application self._worker_output = Queue() self._worker_input = Queue() self._workers = dict() self._tasks = deque()
def post(self): username = self.get_argument("username", None) password = self.get_argument("password", None) print username print password result = conn.query( "SELECT COUNT(*) FROM member WHERE member_username = %s AND member_password = PASSWORD(%s)", username, password) print result if result[0]['COUNT(*)'] > 0: user_id = result[0].get("entity_id", "") print result print u"=== 登录 ===" self.set_secure_cookie("user", tornado.escape.json_encode({ "id": user_id, "v": 1 }), expires=time.time() + 63072000, domain=settings.get("cookie_domain")) self.finish({ "info": "success", "login_account": username, "action": "redirect", "redirect_uri": "/" }) return else: print u"=== 账号密码错误 ===" self.finish({"info": "reload"})
def _create_workers(self): self._workers.clear() requests_per_minute = setting.get('worker.requests-per-minute', int, REQUESTS_PER_MINUTE) local_object_duration = setting.get('worker.local-object-duration', int, LOCAL_OBJECT_DURATION) broadcast_incremental_backup = setting.get( 'worker.broadcast-incremental-backup', bool, BROADCAST_INCREMENTAL_BACKUP) broadcast_active_duration = setting.get( 'worker.broadcast-active-duration', int, BROADCAST_ACTIVE_DURATION) image_local_cache = setting.get('worker.image-local-cache', bool, IMAGE_LOCAL_CACHE) self._worker_input = Queue() worker_args = { 'debug': settings.get('debug'), 'queue_in': self._worker_input, 'queue_out': self._worker_output, 'requests_per_minute': requests_per_minute, 'local_object_duration': local_object_duration, 'broadcast_incremental_backup': broadcast_incremental_backup, 'image_local_cache': image_local_cache, 'broadcast_active_duration': broadcast_active_duration, 'db_path': db.DATEBASE_PATH, } worker = Worker(**worker_args) self._workers[worker.name] = worker proxies = setting.get('worker.proxies', 'json') if not proxies: return for proxy in proxies: worker_args['proxy'] = proxy worker = Worker(**worker_args) self._workers[worker.name] = worker
def get(self, post_name): wp_perfix = settings.get("wordpress_prefix", "wp_") self.post = conn.get("SELECT * FROM "+wp_perfix+"posts WHERE post_status = 'publish' AND post_type = 'post' AND post_name = %s", tornado.escape.url_escape(post_name)) if not self.post: raise tornado.web.HTTPError(404) self.render('../template/post.html')
def get(self, post_name): wp_perfix = settings.get("wordpress_prefix", "wp_") self.post = conn.get( "SELECT * FROM %sposts WHERE post_status = 'publish' AND post_type = 'post' AND post_name = %s" % (wp_perfix, "%s"), tornado.escape.url_escape(post_name)) if not self.post: raise tornado.web.HTTPError(404) self.render('../template/post.html')
def prepare_file(url, retries): _, file_ext = os.path.splitext(url) hash_str = hashlib.md5('{0}|{1}'.format(retries, url).encode()).hexdigest() file_path = '{0}/{1}'.format(hash_str[0:2], hash_str[2:4]) local_filename = '{0}/{1}'.format(file_path, hash_str[4:] + file_ext) cache_path = settings.get('cache') directory = '{0}/{1}'.format(cache_path, file_path) full_path_filename = '{0}/{1}'.format(cache_path, local_filename) if not os.path.exists(directory): os.makedirs(directory) return full_path_filename, local_filename
def main(self): """Monitors all redis servers defined in the config for a certain number of seconds. Args: duration (int): The number of seconds to monitor for. """ redis_servers = settings.get("redis", []) for redis_server in redis_servers: redis_password = redis_server.get("password") info = InfoThread(self.app_queue, self.notice_queue, redis_server["server"], redis_server["port"], redis_password) self.threads.append(info) info.setDaemon(True) info.start()
def verification(self): signature = self.get_argument('signature') timestamp = self.get_argument('timestamp') nonce = self.get_argument('nonce') token = settings.get("token") tmplist = [token, timestamp, nonce] tmplist.sort() tmpstr = ''.join(tmplist) hashstr = hashlib.sha1(tmpstr).hexdigest() if hashstr == signature: return True return False
def get(self): wp_perfix = settings.get("wordpress_prefix", "wp_") term = self.get_argument("t", None) if term: term_record = conn.get("SELECT * FROM "+wp_perfix+"terms WHERE slug = %s", term) term_taxonomy = conn.get("SELECT * FROM "+wp_perfix+"term_taxonomy WHERE term_id = %s", term_record["term_id"]) object_records = conn.query("SELECT * FROM "+wp_perfix+"term_relationships WHERE term_taxonomy_id = %s ORDER BY object_id DESC LIMIT 5", term_taxonomy["term_taxonomy_id"]) self.post_list = conn.query("SELECT * FROM "+wp_perfix+"posts WHERE post_status = 'publish' AND post_type = 'post' AND ID IN %s ORDER BY ID DESC", tuple([i["object_id"] for i in object_records])) self.term = "&t=%s" % term else: self.post_list = conn.query("SELECT * FROM "+wp_perfix+"posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY ID DESC LIMIT 5") self.term = "" post_thumbnail_ids = {} meta_thumbnails = {} post_thumbnails = {} postmeta_list = conn.query("SELECT * FROM "+wp_perfix+"postmeta WHERE meta_key = '_thumbnail_id' AND post_id IN %s", tuple([int(i.ID) for i in self.post_list])) for postmeta in postmeta_list: post_thumbnail_ids[postmeta.post_id] = postmeta.meta_value postmeta_list = conn.query("SELECT * FROM "+wp_perfix+"postmeta WHERE meta_key = '_wp_attached_file' AND post_id IN %s" , tuple([int(i) for i in post_thumbnail_ids.values()])) for postmeta in postmeta_list: meta_thumbnails[postmeta.post_id] = postmeta.meta_value for k, v in post_thumbnail_ids.iteritems(): post_thumbnails[k] = meta_thumbnails[long(v)] self.post_id_from = self.post_list[-1].ID self.carousel_list = [] carousel_count = 0 color_count = 0 for post in self.post_list: post.thumbnail = "/wp-content/uploads/%s" % post_thumbnails[post.ID] if post_thumbnails.get(post.ID) else None if post.thumbnail and carousel_count < 3: self.carousel_list.append(post) carousel_count += 1 soup = BeautifulSoup(post.post_content.split("<!--more-->")[0]) post.post_excerpt = soup.get_text() post.color = POST_COLORS[color_count % len(POST_COLORS)] color_count += 1 self.render('../template/main.html')
def getSetting(): try: global Setting fileSource = settings.get() Setting.appID = fileSource['appID'] Setting.appSecret = fileSource['appSecret'] #try:Setting.Token= json.loads(requests.get('https://graph.facebook.com/oauth/access_token?client_id=%s&client_secret=%s&grant_type=client_credentials'%(Setting.appID, Setting.appSecret)).text)['access_token'] #finally:Setting.Token = "" if Setting.Token == "" else Setting.Token Setting.Token = "EAACEdEose0cBANRIIwH5T1JmIlQHthCAQLhZCZBMWLzqkrDHFqDk2AEfIK4KM3flefY2LrKmFZBxQrIBdAKIvPADHZBh2mZAEDHw7oXtHPC2Tf4Bub3hfubrY9zMPLohYBuGWGuEuJCTcVQ5eZAKyZAdAEczLF97tZBhUiwOXCXoXlD1UQIgrZBoAmDFZA2o0lZBWMZD" Setting.pageID = fileSource['pageID'] Setting.gropuID = fileSource['groupID'] return True except Exception as ex: return ex
def verification(self): signature = self.get_argument('signature') timestamp = self.get_argument('timestamp') nonce = self.get_argument('nonce') token = settings.get("token") tmplist = [token, timestamp, nonce] tmplist.sort() tmpstr = ''.join(tmplist) hashstr = sha1(tmpstr).hexdigest() if hashstr == signature: logger.info("connect with weixin server success!") return True logger.warn("connect with weixin server fail!") return False
def get(self): wp_perfix = settings.get("wordpress_prefix", "wp_") from_id = int(self.get_argument("from", "")) term = self.get_argument("t", None) if term: term_record = conn.get("SELECT * FROM "+wp_perfix+"terms WHERE slug = %s", term) term_taxonomy = conn.get("SELECT * FROM "+wp_perfix+"term_taxonomy WHERE term_id = %s", term_record["term_id"]) object_records = conn.query("SELECT * FROM "+wp_perfix+"term_relationships WHERE term_taxonomy_id = %s AND object_id < %s ORDER BY object_id DESC LIMIT 5", term_taxonomy["term_taxonomy_id"], from_id) post_list = conn.query("SELECT * FROM "+wp_perfix+"posts WHERE post_status = 'publish' AND post_type = 'post' AND ID IN %s ORDER BY ID DESC", tuple([i["object_id"] for i in object_records])) self.term = "&t=%s" % term else: post_list = conn.query("SELECT * FROM "+wp_perfix+"posts WHERE post_status = 'publish' AND post_type = 'post' AND ID < %s ORDER BY ID DESC LIMIT 5", from_id) post_thumbnail_ids = {} meta_thumbnails = {} post_thumbnails = {} postmeta_list = conn.query("SELECT * FROM "+wp_perfix+"postmeta WHERE meta_key = '_thumbnail_id' AND post_id IN %s", tuple([int(i.ID) for i in post_list])) for postmeta in postmeta_list: post_thumbnail_ids[postmeta.post_id] = postmeta.meta_value postmeta_list = conn.query("SELECT * FROM "+wp_perfix+"postmeta WHERE meta_key = '_wp_attached_file' AND post_id IN %s" , tuple([int(i) for i in post_thumbnail_ids.values()])) for postmeta in postmeta_list: meta_thumbnails[postmeta.post_id] = postmeta.meta_value for k, v in post_thumbnail_ids.iteritems(): post_thumbnails[k] = meta_thumbnails[long(v)] post_list_json = [] color_count = 0 for post in post_list: soup = BeautifulSoup(post.post_content.split("<!--more-->")[0]) post_json = {} post_json["post_excerpt"] = soup.get_text() post_json["post_title"] = post.post_title post_json["post_name"] = post.post_name post_json["thumbnail"] = "/wp-content/uploads/%s" % post_thumbnails[post.ID] if post_thumbnails.get(post.ID) else None post_json["color"] = POST_COLORS[color_count % len(POST_COLORS)] color_count += 1 post_list_json.append(post_json) self.finish({"list":post_list_json, "post_id_from":post_list[-1].ID if post_list else 0})
def main(args): """ 程序主函数 """ parsed_args = parse_args(args) settings.update({ 'cache': parsed_args.cache, 'database': parsed_args.database, 'port': parsed_args.port, 'debug': parsed_args.debug, }) logging.basicConfig( level=logging.DEBUG if settings.get('debug') else logging.INFO, format= '[%(asctime)s] (%(pathname)s:%(lineno)s) [%(levelname)s] %(name)s: %(message)s', datefmt='%m-%d %H:%M') startup() db.init(parsed_args.database) server = Server(parsed_args.port, DEFAULT_SERVICE_HOST, parsed_args.cache) server.run()
def get(self): wp_perfix = settings.get("wordpress_prefix", "wp_") term = self.get_argument("t", None) if term: term_record = conn.get( "SELECT * FROM %sterms WHERE slug = %s" % (wp_perfix, "%s"), term) term_taxonomy = conn.get( "SELECT * FROM %sterm_taxonomy WHERE term_id = %s" % (wp_perfix, "%s"), term_record["term_id"]) object_records = conn.query( "SELECT * FROM %sterm_relationships WHERE term_taxonomy_id = %s ORDER BY object_id DESC LIMIT 5" % (wp_perfix, "%s"), term_taxonomy["term_taxonomy_id"]) self.post_list = conn.query( "SELECT * FROM %sposts WHERE post_status = 'publish' AND post_type = 'post' AND ID IN %s ORDER BY ID DESC" % (wp_perfix, "%s"), tuple([i["object_id"] for i in object_records])) self.term = "&t=%s" % term else: self.post_list = conn.query( "SELECT * FROM %sposts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY ID DESC LIMIT 5" % wp_perfix) self.term = "" post_thumbnail_ids = {} meta_thumbnails = {} post_thumbnails = {} postmeta_list = conn.query( "SELECT * FROM %spostmeta WHERE meta_key = '_thumbnail_id' AND post_id IN %s" % (wp_perfix, "%s"), tuple([int(i.ID) for i in self.post_list])) for postmeta in postmeta_list: post_thumbnail_ids[postmeta.post_id] = postmeta.meta_value postmeta_list = conn.query( "SELECT * FROM %spostmeta WHERE meta_key = '_wp_attached_file' AND post_id IN %s" % (wp_perfix, "%s"), tuple([int(i) for i in post_thumbnail_ids.values()])) for postmeta in postmeta_list: meta_thumbnails[postmeta.post_id] = postmeta.meta_value for k, v in post_thumbnail_ids.iteritems(): post_thumbnails[k] = meta_thumbnails[long(v)] self.post_id_from = self.post_list[-1].ID self.carousel_list = [] carousel_count = 0 color_count = 0 for post in self.post_list: post.thumbnail = "/wp-content/uploads/%s" % post_thumbnails[ post.ID] if post_thumbnails.get(post.ID) else None if post.thumbnail and carousel_count < 3: self.carousel_list.append(post) carousel_count += 1 soup = BeautifulSoup(post.post_content.split("<!--more-->")[0]) post.post_excerpt = soup.get_text() post.color = POST_COLORS[color_count % len(POST_COLORS)] color_count += 1 self.render('../template/main.html')
# -*- coding: utf-8 -*- from setting import settings route_prefix = settings.get("test_route", "") routes = [ (r"/templates/(.*)", "handler.templates.StaticDownloadHandler"), (r"/index", "handler.download.DownloadHandler"), (r"/", "handler.download.DownloadHandler"), ]
def get(self): wp_perfix = settings.get("wordpress_prefix", "wp_") from_id = int(self.get_argument("from", "")) term = self.get_argument("t", None) if term: term_record = conn.get( "SELECT * FROM %sterms WHERE slug = %s" % (wp_perfix, "%s"), term) term_taxonomy = conn.get( "SELECT * FROM %sterm_taxonomy WHERE term_id = %s" % (wp_perfix, "%s"), term_record["term_id"]) object_records = conn.query( "SELECT * FROM %sterm_relationships WHERE term_taxonomy_id = %s AND object_id < %s ORDER BY object_id DESC LIMIT 5" % (wp_perfix, "%s", "%s"), term_taxonomy["term_taxonomy_id"], from_id) post_list = conn.query( "SELECT * FROM %sposts WHERE post_status = 'publish' AND post_type = 'post' AND ID IN %s ORDER BY ID DESC" % (wp_perfix, "%s"), tuple([i["object_id"] for i in object_records])) self.term = "&t=%s" % term else: post_list = conn.query( "SELECT * FROM %sposts WHERE post_status = 'publish' AND post_type = 'post' AND ID < %s ORDER BY ID DESC LIMIT 5" % (wp_perfix, "%s"), from_id) post_thumbnail_ids = {} meta_thumbnails = {} post_thumbnails = {} postmeta_list = conn.query( "SELECT * FROM %spostmeta WHERE meta_key = '_thumbnail_id' AND post_id IN %s" % (wp_perfix, "%s"), tuple([int(i.ID) for i in post_list])) for postmeta in postmeta_list: post_thumbnail_ids[postmeta.post_id] = postmeta.meta_value postmeta_list = conn.query( "SELECT * FROM %spostmeta WHERE meta_key = '_wp_attached_file' AND post_id IN %s" % (wp_perfix, "%s"), tuple([int(i) for i in post_thumbnail_ids.values()])) for postmeta in postmeta_list: meta_thumbnails[postmeta.post_id] = postmeta.meta_value for k, v in post_thumbnail_ids.iteritems(): post_thumbnails[k] = meta_thumbnails[long(v)] post_list_json = [] color_count = 0 for post in post_list: soup = BeautifulSoup(post.post_content.split("<!--more-->")[0]) post_json = {} post_json["post_excerpt"] = soup.get_text() post_json["post_title"] = post.post_title post_json["post_name"] = post.post_name post_json[ "thumbnail"] = "/wp-content/uploads/%s" % post_thumbnails[ post.ID] if post_thumbnails.get(post.ID) else None post_json["color"] = POST_COLORS[color_count % len(POST_COLORS)] color_count += 1 post_list_json.append(post_json) self.finish({ "list": post_list_json, "post_id_from": post_list[-1].ID if post_list else 0 })