Пример #1
0
    def setUp(self):
        """DeviceModel test set up"""

        if os.path.isfile('/tmp/box.db'):
            os.unlink('/tmp/box.db')
        DBHelper().set_db('/tmp/box.db')
        InstallHelper.reset()
        DeviceModel.install()
Пример #2
0
    def setUp(self):
        """DeviceModel test set up"""

        if os.path.isfile("/tmp/box.db"):
            os.unlink("/tmp/box.db")
        DBHelper().set_db("/tmp/box.db")
        InstallHelper.reset()
        DeviceModel.install()
Пример #3
0
    def _install(cls):
        """Install base table and attributes"""

        DeviceModel.install()
        ExtendedModel.install()
        table = DBHelper.quote_identifier(cls._table)
        pk = DBHelper.quote_identifier(cls._pk)

        return (
            lambda: (
                DBHelper().query("""
                    CREATE TABLE %s (
                        %s           INTEGER PRIMARY KEY AUTOINCREMENT,
                        "name"       TEXT    NOT NULL DEFAULT '',
                        "abspath"    TEXT    NOT NULL DEFAULT '',
                        "extension"  TEXT,
                        "type"       TEXT    NOT NULL DEFAULT '',
                        "subtype"    TEXT    NOT NULL DEFAULT '',
                        "charset"    TEXT,
                        "checksum"   TEXT    NOT NULL DEFAULT '',
                        "size"       INTEGER,
                        "created_at" INTEGER,
                        "indexed_at" INTEGER,
                        "is_hidden"  INTEGER NOT NULL DEFAULT 0,
                        "rating"     INTEGER NOT NULL DEFAULT 0,
                        "device"     INTEGER,
                        "devpath"    TEXT    NOT NULL DEFAULT '',
                        FOREIGN KEY ("device") REFERENCES "device"("_id")
                            ON DELETE SET NULL ON UPDATE SET NULL
                    )
                """ % (table, pk)),
                DBHelper().query("""
                    CREATE UNIQUE INDEX "UNQ_FILE_DUPLICATE"
                        ON %s ("name", "devpath", "checksum")
                """ % table),
                cls._create_attribute_tables(),
                cls._create_attribute(
                    'width', 'Width', 'integer', 'Image'),
                cls._create_attribute(
                    'height', 'Height', 'integer', 'Image'),
                cls._create_attribute(
                    'latitude', 'Latitude', 'real', 'Image'),
                cls._create_attribute(
                    'longitude', 'Longitude', 'real', 'Image'),
                cls._create_attribute(
                    'timestamp', 'Timestamp', 'integer', 'Image'),
                cls._create_attribute(
                    'orientation', 'Orientation', 'integer', 'Image')
            ),
        )
Пример #4
0
    def _install(cls):
        """Install base table and attributes"""

        DeviceModel.install()
        ExtendedModel.install()
        table = DBHelper.quote_identifier(cls._table)
        pk = DBHelper.quote_identifier(cls._pk)

        return (
            lambda:
            (DBHelper().query("""
                    CREATE TABLE %s (
                        %s           INTEGER PRIMARY KEY AUTOINCREMENT,
                        "name"       TEXT    NOT NULL DEFAULT '',
                        "abspath"    TEXT    NOT NULL DEFAULT '',
                        "extension"  TEXT,
                        "type"       TEXT    NOT NULL DEFAULT '',
                        "subtype"    TEXT    NOT NULL DEFAULT '',
                        "charset"    TEXT,
                        "checksum"   TEXT    NOT NULL DEFAULT '',
                        "size"       INTEGER,
                        "created_at" INTEGER,
                        "indexed_at" INTEGER,
                        "is_hidden"  INTEGER NOT NULL DEFAULT 0,
                        "rating"     INTEGER NOT NULL DEFAULT 0,
                        "device"     INTEGER,
                        "devpath"    TEXT    NOT NULL DEFAULT '',
                        FOREIGN KEY ("device") REFERENCES "device"("_id")
                            ON DELETE SET NULL ON UPDATE SET NULL
                    )
                """ % (table, pk)), DBHelper().query("""
                    CREATE UNIQUE INDEX "UNQ_FILE_DUPLICATE"
                        ON %s ("name", "devpath", "checksum")
                """ % table), cls._create_attribute_tables(),
             cls._create_attribute('width', 'Width', 'integer', 'Image'),
             cls._create_attribute('height', 'Height', 'integer', 'Image'),
             cls._create_attribute('latitude', 'Latitude', 'real', 'Image'),
             cls._create_attribute('longitude', 'Longitude', 'real', 'Image'),
             cls._create_attribute('timestamp', 'Timestamp', 'integer', 'Image'
                                   ),
             cls._create_attribute('orientation', 'Orientation', 'integer',
                                   'Image')), )
Пример #5
0
                                try:
                                    os.rmdir(file_model.abspath())
                                except OSError:
                                    pass # dir is not empty
                            except OSError:
                                logger.error('Unable to remove duplicate %s'
                                                % duplicate)

                        logger.info('%s already exists, skipping..'
                                        % os.path.join(devpath, filename))

            open(flagfile, 'w').close() # touch indexed flag

if (__name__ == '__main__'):
    """~$ python file.py path/to/database path/to/basedir"""

    if len(sys.argv) < 3:
        exit(1)

    database = sys.argv[1]
    basedir = '%s/devices' % sys.argv[2] #TODO: read from config

    if not os.path.isdir(basedir):
        exit(2)

    DBHelper(database)
    DeviceModel.install()
    FileModel.install()
    FileIndexer(basedir).index_all_devices()

Пример #6
0
                                try:
                                    os.rmdir(file_model.abspath())
                                except OSError:
                                    pass  # dir is not empty
                            except OSError:
                                logger.error('Unable to remove duplicate %s' %
                                             duplicate)

                        logger.info('%s already exists, skipping..' %
                                    os.path.join(devpath, filename))

            open(flagfile, 'w').close()  # touch indexed flag


if (__name__ == '__main__'):
    """~$ python file.py path/to/database path/to/basedir"""

    if len(sys.argv) < 3:
        exit(1)

    database = sys.argv[1]
    basedir = '%s/devices' % sys.argv[2]  #TODO: read from config

    if not os.path.isdir(basedir):
        exit(2)

    DBHelper(database)
    DeviceModel.install()
    FileModel.install()
    FileIndexer(basedir).index_all_devices()