indy.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from mastodon import Mastodon
  2. from datetime import datetime
  3. import requests
  4. import pause
  5. import json
  6. import traceback
  7. data = json.load(open('sorted.json'))
  8. # Set up Mastodon
  9. mastodon = Mastodon(
  10. api_base_url = 'https://mastodon.cisti.org',
  11. access_token = 'token.secret'
  12. )
  13. for post in data:
  14. # add 20 years
  15. dt = datetime.fromisoformat(post['created'])
  16. dt = dt.replace(year=2021)
  17. # skip past post
  18. if dt < datetime.now():
  19. print("Skip ", post['heading'], dt)
  20. continue
  21. # wait for the next post
  22. print("Next post at: ", dt, post['heading'])
  23. pause.until(dt)
  24. # FINAL URL
  25. url = "https://italy.indymedia.org/posts/"+post['hugo']
  26. out = post['created'] +"\n\n"+post['heading']+"\n\n"
  27. # CHECK MEDIA LINK
  28. try:
  29. media_id = False
  30. if post['linked_file']:
  31. # MEDIA LINK URL
  32. linkurl = "https://italy.indymedia.org/uploads/"
  33. # IMAGES ONLY
  34. if post['linked_file'].lower().find('jpg') >= 0 or \
  35. post['linked_file'].lower().find('jpeg') >= 0 or \
  36. post['linked_file'].lower().find('gif') >= 0:
  37. response = requests.get("https://italy.indymedia.org/uploads/" + post['linked_file'])
  38. with open('./tmp', 'wb') as f:
  39. f.write(response.content)
  40. media_id = mastodon.media_post('./tmp')
  41. media_ids = [media_id] if media_id else []
  42. out += 'LEGGI IL POST: '+url
  43. print(out)
  44. mastodon.status_post(out, media_ids=media_ids)
  45. except Exception:
  46. traceback.print_exc()