# -*- coding: utf-8 -*- # ============================================== # scrapyd 接口服务 # ============================================== from flask import request from spider_admin_pro.flask_app import BlueprintAppApi from spider_admin_pro.service.auth_service import AuthService from spider_admin_pro.service.scrapyd_service import client, ScrapydService scrapyd_api = BlueprintAppApi("scrapyd", __name__) @scrapyd_api.before_request def before_request(): token = request.headers.get('Token') AuthService.check_token(token) @scrapyd_api.post('/daemonStatus') def daemon_status(): return client.daemon_status() @scrapyd_api.post('/addVersion') def add_version(): project = request.form['project'] egg = request.files['egg'] return client.add_version(project, egg)
# -*- coding: utf-8 -*- # ============================================== # 调度器接口服务 # ============================================== from flask import request from spider_admin_pro.flask_app import BlueprintAppApi from spider_admin_pro.utils.scheduler_util import SchedulerUtil from spider_admin_pro.service.auth_service import AuthService from spider_admin_pro.service.schedule_service import ScheduleService, scheduler schedule_api = BlueprintAppApi(name="schedule", import_name=__name__) # 权限校验 @schedule_api.before_request def before_request(): token = request.headers.get('Token') AuthService.check_token(token) ######################### # 任务管理 ######################### @schedule_api.post("/getJobs") def get_jobs(): jobs = scheduler.get_jobs() return SchedulerUtil.jobs_to_dict(jobs)
# -*- coding: utf-8 -*- """ 登录模块 """ from flask import request from spider_admin_pro.flask_app import BlueprintAppApi from spider_admin_pro.service.auth_service import AuthService auth_api = BlueprintAppApi("auth", __name__) @auth_api.post('/login') def login(): username = request.json['username'] password = request.json['password'] return AuthService.login(username=username, password=password)
# -*- coding: utf-8 -*- """ spider运行结果数据收集模块 """ from pprint import pprint from flask import request from spider_admin_pro.flask_app import BlueprintAppApi from spider_admin_pro.model.stats_collection_model import StatsCollectionModel from spider_admin_pro.service.stats_collection_service import StatsCollectionService stats_collection_api = BlueprintAppApi("stats_collection", __name__) @stats_collection_api.post('/addItem') def add_item(): pprint(request.json) spider_job_id = request.json['job_id'] project = request.json['project'] spider = request.json['spider'] item_scraped_count = request.json['item_scraped_count'] item_dropped_count = request.json['item_dropped_count'] start_time = request.json['start_time'] finish_time = request.json['finish_time'] duration = request.json['duration'] finish_reason = request.json['finish_reason'] log_error_count = request.json['log_error_count']
# -*- coding: utf-8 -*- # ============================================== # 系统信息接口 # ============================================== from flask import request from spider_admin_pro.flask_app import BlueprintAppApi from spider_admin_pro.service.auth_service import AuthService from spider_admin_pro.service.system_data_service import SystemDataService system_api = BlueprintAppApi("system", __name__) @system_api.before_request def before_request(): token = request.headers.get('Token') AuthService.check_token(token) @system_api.post('/systemInfo') def get_system_info(): return SystemDataService.get_system_info() @system_api.post("/systemData") def get_system_data(): return SystemDataService.get_system_data() @system_api.post("/systemConfig") def get_system_config():
# -*- coding: utf-8 -*- """ 行为历史模块 """ from flask import request from spider_admin_pro.flask_app import BlueprintAppApi from spider_admin_pro.service.action_history_service import ActionHistoryService action_history_api = BlueprintAppApi("action_history_api", __name__) @action_history_api.post('/loginHistoryList') def login_history_list(): page = request.json.get('page', 1) size = request.json.get('size', 20) rows = ActionHistoryService.get_login_history(page=page, size=size) total = ActionHistoryService.get_login_history_count() return {'list': rows, 'total': total}