diff --git a/untappd2mastodon.py b/untappd2mastodon.py new file mode 100755 index 0000000..d667b8a --- /dev/null +++ b/untappd2mastodon.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python +from mastodon import Mastodon +import json +import requests +import config + +# Set up access +mastodon = Mastodon( api_base_url=config.instance, access_token=config.write_access_token ) + +# Untappd API +untappd_api_url = 'https://api.untappd.com/v4/user/checkins/edent?client_id=' + config.untappd_client_id + '&client_secret='+ config.untappd_client_secret + +r = requests.get(untappd_api_url) + +untappd_data = r.json() + +# Latest checkin object +checkin = untappd_data["response"]["checkins"]["items"][0] +untappd_id = checkin["checkin_id"] + +# Was this ID the last one we saw? +check_file = open("untappd_last", "r+") +last_id = check_file.read() + +if (last_id != str(untappd_id) ) : + check_file.write( str(untappd_id) ) + check_file.close() + # Start creating the message + message = "" + + if "checkin_comment" in checkin : + message += checkin["checkin_comment"] + + if "beer" in checkin : + message += "\nDrinking: " + checkin["beer"]["beer_name"] + + if "brewery" in checkin : + message += "\nBy: " + checkin["brewery"]["brewery_name"] + + if "venue_name" in checkin : + message += "\nIn: " + checkin["venue"]["venue_name"] + # Scores etc + untappd_checkin_url = "https://untappd.com/user/edent/checkin/" + str(untappd_id) + untappd_rating = checkin["rating_score"] + untappd_score = "🍺" * int(untappd_rating) + + message += "\n" + untappd_score + "\n" + untappd_checkin_url + "\n" + "#untappd" + # Post to Mastodon. Use idempotency just in case something went wrong + mastodon.status_post(status = message, idempotency_key = str(untappd_id)) diff --git a/untappd_last b/untappd_last new file mode 100644 index 0000000..5a8a1b7 --- /dev/null +++ b/untappd_last @@ -0,0 +1 @@ +124850354412495236961249523696 \ No newline at end of file