Advertisement
yoursunny

upload photos to Facebook with location tagging

Feb 15th, 2017
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.78 KB | None | 0 0
  1. import datetime
  2. import facebook
  3. import os
  4. import stat
  5. import subprocess
  6.  
  7. APPID = ''
  8. TOKEN = ''
  9. ALBUM_NAME = '201702 Yuma'
  10. PHOTO_FOLDER = '/media/sf_photo/2017/0212Yuma/'
  11. MTIME_OFFSET = -7 * 60 * 60
  12. LAST_UPLOADED = 'IMG_4828.JPG'
  13.  
  14. photoFiles = []
  15. for f in sorted(os.listdir(PHOTO_FOLDER)):
  16.     if LAST_UPLOADED is not None and f <= LAST_UPLOADED:
  17.         continue
  18.     f = os.path.join(PHOTO_FOLDER, f)
  19.     st = os.stat(f)
  20.     if not stat.S_ISREG(st.st_mode):
  21.         continue
  22.     photoFiles.append((f, st.st_mtime + MTIME_OFFSET))
  23.  
  24. def getPlaceFromMtime(mtime):
  25.     t = datetime.datetime.fromtimestamp(mtime)
  26.     if t < datetime.datetime(2017, 2, 11, 12, 0, 0):
  27.         return 103753902996513
  28.     if t < datetime.datetime(2017, 2, 11, 14, 0, 0):
  29.         return 103742909664625
  30.     if t < datetime.datetime(2017, 2, 11, 17, 0, 0):
  31.         return 1472376653065805
  32.     if t < datetime.datetime(2017, 2, 11, 20, 0, 0):
  33.         return None
  34.     if t < datetime.datetime(2017, 2, 12, 8, 0, 0):
  35.         return 115579985482138
  36.     if t < datetime.datetime(2017, 2, 12, 8, 50, 0):
  37.         return 351048054976870
  38.     if t < datetime.datetime(2017, 2, 12, 11, 0, 0):
  39.         return 1673231296246629
  40.     if t < datetime.datetime(2017, 2, 12, 12, 30, 0):
  41.         return 132074510161873
  42.     if t < datetime.datetime(2017, 2, 12, 13, 6, 0):
  43.         return 110159075756452
  44.     if t < datetime.datetime(2017, 2, 12, 13, 30, 0):
  45.         return 282011785156317
  46.     if t < datetime.datetime(2017, 2, 12, 14, 0, 0):
  47.         return None
  48.     if t < datetime.datetime(2017, 2, 12, 15, 0, 0):
  49.         return 114809553428
  50.     if t < datetime.datetime(2017, 2, 12, 17, 0, 0):
  51.         return 107116959319061
  52.     if t < datetime.datetime(2017, 2, 12, 18, 0, 0):
  53.         return 107499722606174
  54.     if t < datetime.datetime(2017, 2, 12, 19, 0, 0):
  55.         return 273905462742814
  56.     if t < datetime.datetime(2017, 2, 12, 21, 0, 0):
  57.         return 101412203301074
  58.     return None
  59.  
  60. graph = facebook.GraphAPI(access_token=TOKEN, version='2.7')
  61.  
  62. albums = graph.get_all_connections(id='me', connection_name='albums')
  63.  
  64. albumId = None
  65. for album in albums:
  66.     if album['name'] == ALBUM_NAME:
  67.         albumId = album['id']
  68. if albumId is None:
  69.     res = graph.put_object(parent_object='me', connection_name='albums', name=ALBUM_NAME)
  70.     albumId = res['id']
  71.     print 'Created album %s' % albumId
  72. else:
  73.     print 'Found album %s' % albumId
  74.  
  75. for (f, mtime) in photoFiles:
  76.     place = getPlaceFromMtime(mtime)
  77.     compressProc = subprocess.Popen(['/usr/bin/php', 'compress.php', f], stdout=subprocess.PIPE)
  78.     graph.put_photo(image=compressProc.stdout, album_path=('%s/photos' % albumId), backdated_time=mtime, backdated_time_granularity='min', place=place)
  79.     compressProc.wait()
  80.     print 'Uploaded %s' % f
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement