コード例 #1
0
ファイル: gui.py プロジェクト: hi117/image-database
 def __init__(self,button=None):
     def getSize():
         size = 0
         for i in p._idb.images.keys():
             size += p._idb.images[i][0]
             return size
     
     self.window = gtk.Window()
     self.window.connect("delete_event", self.delete_event)
     self.window.set_border_width(2)
     self.window.set_title("Image DB Stats")
     message = "Images in db: " + str(len(p.getImages())) + '\n'
     message += "Size of metadata: " + str(len(dumps(p._idb.images))) + '\n'
     message += "Number of tags: " + str(len(p.getTags())) + '\n'
     message += "Number of unsorted images: " + str(len(p.search('setMe'))) + '\n'
     message += "Theoretical size of DB: " + str(getSize()) + '\n'
     message += "Percent Sorted: " + str(100 - (((len(p.search('setMe')) * 1.0) / len(p.getImages())) * 100)) + '\n'
     self.message = gtk.Label(message)
     self.window.add(self.message)
     self.message.show()
     self.window.show()
     gtk.main()
コード例 #2
0
ファイル: clean.py プロジェクト: hi117/image-database
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

import pictures as p
from sys import argv,exit
import os
import os.path
from hashlib import sha1

if len(argv) != 3:
    print("Usage: python clean.py idb directory")
    exit(1)

p._idb = p.idb.db(argv[1])

# get a list of files in the directory
for i in os.listdir(argv[2]):
    print("current path is: " + argv[2] + i)
    if os.path.isfile(argv[2] + i):
        Hash = sha1(open(argv[2] + i, 'rb').read()).hexdigest()
        if Hash in p.getImages():
            print("match: " + Hash)
            os.remove(argv[2] + i)
コード例 #3
0
ファイル: rclean.py プロジェクト: hi117/image-database
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

import pictures as p
from sys import argv,exit
import os.path
from subprocess import check_output
from hashlib import sha1

if len(argv) != 3:
    print("Usage: python clean.py idb directory")
    exit(1)

p._idbi = p.idb.db(argv[1])

# get a list of files in the directory
images = p.getImages()
p.close()
del p

for i in check_output(['find', argv[2], '-type', 'f']).split("\n"):
    print("current path is: " + i)
    if os.path.isfile(i):
        Hash = sha1(open(i, 'rb').read()).hexdigest()
        if Hash in images:
            print("match: " + Hash)
            os.remove(i)
コード例 #4
0
ファイル: mass_extract.py プロジェクト: hi117/image-database
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

from sys import exit,argv
import pictures as p
import os
import os.path

def genPath(Hash):
    image = p._idb.images[Hash]
    return Hash + ' - ' + ', '.join(image[2]) + '.' + image[1].split(' ')[0]

if len(argv) != 3:
    print("usage: python mass_extract.py db.ksh directory")
    exit(0)

if not os.path.isdir(argv[2]):
    print("error: pah given is dot a directory")
    exit(1)

p._idb = p.idb.db(argv[1])
os.chdir(argv[2])
for picture in p.getImages():
    try:
        open(genPath(picture), 'wb').write(p.extractImage(picture))
    except TypeError:
        print(picture)
コード例 #5
0
ファイル: count.py プロジェクト: hi117/image-database
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

import pictures as p
from sys import argv,exit
from pickle import dumps

def getSize():
    size = 0
    for i in p._idb.images.keys():
        size += p._idb.images[i][0]
    return size

if len(argv) != 2:
    print("Usage: python addall.py idb")
    exit(1)

p._idb = p.idb.db(argv[1])

print("Images in db: ", len(p.getImages()))
print("Size of metadata: ", len(dumps(p._idb.images)))
print("Number of tags: ", len(p.getTags()))
print("Number of unsorted images: ", len(p.search('setMe')))
print("Theoretical size of DB: ", getSize())
print("Percent Sorted: ", 100 - (((len(p.search('setMe')) * 1.0) / len(p.getImages())) * 100))