예제 #1
0
from flask import Flask, send_from_directory, jsonify, request, Response, make_response
import waitress

from OnionSVG import check_svg

import isimple
import isimple.config
import isimple.util as util
import isimple.util.filedialog
import isimple.core.backend as backend
import isimple.core.streaming as streaming
import isimple.db as db
import isimple.video as video
import isimple.plugins as plugins

log = isimple.get_logger(__name__)
UI = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
                  'ui', 'dist')


def respond(*args) -> str:
    return jsonify(*args)


def restart_server(host: str, port: int):
    log.info('restarting server...')

    subprocess.Popen(
        f'sleep 1; python .venv.py .server.py --host {host} --port {port}',
        shell=True,
        cwd=os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
예제 #2
0
from distutils.util import strtobool
from functools import wraps, lru_cache
from typing import Any, Generator, Optional
from collections import namedtuple
import multiprocessing
import threading
import queue
import hashlib
from contextlib import contextmanager
import diskcache

import numpy as np

from isimple import get_logger, settings, Logger

log = get_logger(__name__)


def str2bool(value: str) -> bool:
    return strtobool(value)


def as_string(value: Any) -> str:
    """Redirect `dbcore` calls to [`beets.util.as_string`](https://github.com/beetbox/beets/blob/545c65d903e38d37fd2c1734ec69eac609bea035/beets/util/__init__.py#L717-L733)
        Remove Python 2.7 compatibility
    """
    if value is None:
        return u''
    elif isinstance(value, memoryview):
        return bytes(value).decode('utf-8', 'ignore')
    elif isinstance(value, bytes):
예제 #3
0
파일: .server.py 프로젝트: ybnd/isimple
import argparse

import socket
import requests
import webbrowser

from isimple import get_logger
from isimple.main import Main, Thread, time

log = get_logger('.server.py')

parser = argparse.ArgumentParser()
parser.add_argument('--host', type=str, default='localhost', required=False)
parser.add_argument('--port', type=int, default=7951, required=False)
parser.add_argument('--open', action='store_true')

if __name__ == '__main__':
    args = parser.parse_args()

    def in_use() -> bool:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            return s.connect_ex((args.host, args.port)) == 0

    def open_in_browser():
        time.sleep(1)
        webbrowser.open(f"http://{args.host}:{args.port}/")

    if in_use():
        log.info('address already in use')

        r = requests.post(f"http://{args.host}:{args.port}/api/quit")