mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-23 17:31:11 +01:00
47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
import os
|
|
|
|
from flask_restful import reqparse, Resource
|
|
|
|
from utils import jsonify
|
|
from utils.file import get_file_content
|
|
|
|
|
|
class FileApi(Resource):
|
|
parser = reqparse.RequestParser()
|
|
arguments = []
|
|
|
|
def __init__(self):
|
|
super(FileApi).__init__()
|
|
self.parser.add_argument('path', type=str)
|
|
|
|
def get(self, action=None):
|
|
args = self.parser.parse_args()
|
|
path = args.get('path')
|
|
|
|
if action is not None:
|
|
if action == 'getDefaultPath':
|
|
return jsonify({
|
|
'defaultPath': os.path.abspath(os.path.join(os.path.curdir, 'spiders'))
|
|
})
|
|
|
|
elif action == 'get_file':
|
|
file_data = get_file_content(path)
|
|
file_data['status'] = 'ok'
|
|
return jsonify(file_data)
|
|
|
|
else:
|
|
return {}
|
|
|
|
folders = []
|
|
files = []
|
|
for _path in os.listdir(path):
|
|
if os.path.isfile(os.path.join(path, _path)):
|
|
files.append(_path)
|
|
elif os.path.isdir(os.path.join(path, _path)):
|
|
folders.append(_path)
|
|
return jsonify({
|
|
'status': 'ok',
|
|
'files': sorted(files),
|
|
'folders': sorted(folders),
|
|
})
|