예제 #1
0
 def open(self, path, mode='r'):  # ignore mode because wdgaf
     path = self._norm_path(path)
     fid = self._lookup_flickr_title(path)
     data = ''
     if fid:
         url = flickr.get_sizes(photo_id=fid, format='bs4').sizes.find('size', label='Original')['source']
         data = png_to_data(requests.get(url).content)
     return FlickrFile(fid, path, data)
예제 #2
0
 def open(self, path, mode='r'):  # ignore mode because wdgaf
     path = self._norm_path(path)
     fid = self._lookup_flickr_title(path)
     data = ''
     if fid:
         url = flickr.get_sizes(photo_id=fid, format='bs4').sizes.find(
             'size', label='Original')['source']
         data = png_to_data(requests.get(url).content)
     return FlickrFile(fid, path, data)
예제 #3
0
 def getinfo(self, path):
     if path in ('', '/'):
         return {'size': 0}
     path = self._norm_path(path)
     fid = self._lookup_flickr_title(path)
     if fid:
         url = flickr.get_sizes(photo_id=fid, format='bs4').sizes.find('size', label='Original')['source']
         data = png_to_data(requests.get(url).content)
         return {'size': len(data)}
     else:
         raise fs.errors.ResourceNotFoundError(path)
예제 #4
0
 def getinfo(self, path):
     if path in ('', '/'):
         return {'size': 0}
     path = self._norm_path(path)
     fid = self._lookup_flickr_title(path)
     if fid:
         url = flickr.get_sizes(photo_id=fid, format='bs4').sizes.find(
             'size', label='Original')['source']
         data = png_to_data(requests.get(url).content)
         return {'size': len(data)}
     else:
         raise fs.errors.ResourceNotFoundError(path)
예제 #5
0
__FILENAME__ = runflickrfs
from fs.expose import fuse
from flickrfs import FlickrFS, data_to_png, png_to_data
import requests
import sys

if __name__ == '__main__':
    if sys.argv[1] == 'encode':
        filefrom, fileto = sys.argv[2], sys.argv[3]
        with open(filefrom) as ff, open(fileto, 'w') as ft:
            img = data_to_png(ff.read())
            img.save(ft, 'png')
    elif sys.argv[1] == 'decode':
        filefrom, fileto = sys.argv[2], sys.argv[3]
        with open(filefrom) as ff, open(fileto, 'w') as ft:
            data = png_to_data(ff.read())
            ft.write(data)
    elif sys.argv[1] == 'upload':
        filefrom = sys.argv[2]
        with open(filefrom) as ff, tempfile.NamedTemporaryFile() as tf:
            img = data_to_png(ff.read())
            img.save(tf, 'png')
            print flickr.upload(filename=tf.name, format='bs4').photoid.text
    elif sys.argv[1] == 'download':
        imageid, fileto = sys.argv[2], sys.argv[3]
        with open(fileto, 'w') as ft:
            url = flickr.get_sizes(photo_id=imageid, format='bs4').sizes.find(
                'size', label='Original')['source']
            ft.write(png_to_data(requests.get(url).content))
    elif len(sys.argv) == 2:
        mp = fuse.mount(FlickrFS(), sys.argv[1])
예제 #6
0
from fs.expose import fuse
from flickrfs import FlickrFS, data_to_png, png_to_data
import requests
import sys


if __name__ == "__main__":
    if sys.argv[1] == "encode":
        filefrom, fileto = sys.argv[2], sys.argv[3]
        with open(filefrom) as ff, open(fileto, "w") as ft:
            img = data_to_png(ff.read())
            img.save(ft, "png")
    elif sys.argv[1] == "decode":
        filefrom, fileto = sys.argv[2], sys.argv[3]
        with open(filefrom) as ff, open(fileto, "w") as ft:
            data = png_to_data(ff.read())
            ft.write(data)
    elif sys.argv[1] == "upload":
        filefrom = sys.argv[2]
        with open(filefrom) as ff, tempfile.NamedTemporaryFile() as tf:
            img = data_to_png(ff.read())
            img.save(tf, "png")
            print flickr.upload(filename=tf.name, format="bs4").photoid.text
    elif sys.argv[1] == "download":
        imageid, fileto = sys.argv[2], sys.argv[3]
        with open(fileto, "w") as ft:
            url = flickr.get_sizes(photo_id=imageid, format="bs4").sizes.find("size", label="Original")["source"]
            ft.write(png_to_data(requests.get(url).content))
    elif len(sys.argv) == 2:
        mp = fuse.mount(FlickrFS(), sys.argv[1])
        print "mounted your filckr account on", mp.path, "pid", mp.pid, "."