Beispiel #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
Beispiel #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 {}
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #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()
Beispiel #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()
Beispiel #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)
Beispiel #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)