예제 #1
0
# -*- 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)
예제 #2
0
# -*- 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)
예제 #3
0
# -*- 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']
예제 #5
0
# -*- 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}