Пример #1
0
def get_new_items():
    path = config.get("browse", "downloads")
    video_formats = config.getlist("index", "video_formats")

    items = OrderedDict()
    files = []

    for root, directories, files_ in os.walk(unicode(path)):
        for f in files_:
            extension = os.path.splitext(f)[-1].lstrip(".")

            if extension in video_formats:
                modified = os.path.getmtime(os.path.join(root, f))
                files.append((modified, f, None))

    for item in Database().select_new():
        files.append((item["modified"],
                      categories.format_media_name(item),
                      item["id"]))

    for i in enumerate(sorted(files, reverse=True)):
        items[i[0]] = {
            "name_one": i[1][-2],
            "id": i[1][-1]
        }

    return items
Пример #2
0
    def _call_api(self, bits):
        """
        Make a request to the Head's API.
        """

        url = "http://%s:%s/medusa/%s/%s" % (config.get("head", "host"),
                                      config.get("ports", "head"),
                                      config.get("head", "api_base"),
                                      "/".join(str(b) for b in bits))

        try:
            return requests.get(url).json()

        except Exception as excp:
            log.error("API call to %s failed: %s", url, excp)

            return {}
Пример #3
0
    def _get_naming(self):
        naming_path = os.path.join(config.base_path,
                                   config.get("files", "naming"))

        with open(naming_path, "r") as file_:
            naming = json.load(file_)

        return naming
Пример #4
0
    def _sanitise(value):
        encoding = config.get("head", "encoding")

        if isinstance(value, list):
            return "|%s" % "|".join(v.encode(encoding) for v in value)

        elif isinstance(value, str):
            return value.encode(encoding)

        return value
Пример #5
0
    def _dictionary_factory(cursor, row):
        result = {}

        for index, column in enumerate(cursor.description):
            value = row[index]

            try:
                value = value.decode(config.get("head", "encoding"))

            except Exception:
                pass

            if isinstance(value, unicode):
                if value.startswith("|"):
                    value = value.split("|")[1:]

            result[column[0]] = value

        return result
Пример #6
0
    def _dictionary_factory(cursor, row):
        result = {}

        for index, column in enumerate(cursor.description):
            value = row[index]

            try:
                value = value.decode(config.get("head", "encoding"))

            except Exception:
                pass

            if isinstance(value, unicode):
                if value.startswith("|"):
                    value = value.split("|")[1:]

            result[column[0]] = value

        return result
Пример #7
0
def get_new_items():
    path = config.get("browse", "downloads")
    video_formats = config.getlist("index", "video_formats")

    items = OrderedDict()
    files = []

    for root, directories, files_ in os.walk(unicode(path)):
        for f in files_:
            extension = os.path.splitext(f)[-1].lstrip(".")

            if extension in video_formats:
                modified = os.path.getmtime(os.path.join(root, f))
                files.append((modified, f, None))

    for item in Database().select_new():
        files.append(
            (item["modified"], categories.format_media_name(item), item["id"]))

    for i in enumerate(sorted(files, reverse=True)):
        items[i[0]] = {"name_one": i[1][-2], "id": i[1][-1]}

    return items
Пример #8
0
    def __init__(self):
        self.database = os.path.join(config.base_path,
                                     config.get("files", "database"))

        if not os.path.exists(self.database):
            self.create_database()
Пример #9
0
    def __init__(self):
        self.database = os.path.join(config.base_path,
                                     config.get("files", "database"))

        if not os.path.exists(self.database):
            self.create_database()
Пример #10
0
import os

import flask

from lib.head.api import api
from lib.head.index import Index
from lib.head.proxy import Proxy
from lib.medusa.communicate import Communicate
from lib.medusa.config import config
from lib.medusa.log import log
from lib.view.pages import pages

#------------------------------------------------------------------------------

PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "lib/view")
API_BASE = config.get("head", "api_base")
URL_BASE = config.get("head", "url_base")

#------------------------------------------------------------------------------

Index()

Communicate(proxy=Proxy)

#------------------------------------------------------------------------------

app = flask.Flask(__name__,
                  template_folder="%s/templates" % PATH,
                  static_folder="%s/static" % PATH,
                  static_url_path="/%s/static" % URL_BASE)
Пример #11
0
#!/usr/bin/env python

"""
Log to a file.
"""

import logging as log

from lib.medusa.config import config

#------------------------------------------------------------------------------

FORMAT = "%(asctime)s %(levelname)s %(filename)s %(message)s"

#------------------------------------------------------------------------------

log.basicConfig(filename=config.get("files", "log"),
                format=FORMAT,
                level=log.WARN)