#!/usr/bin/env python3 #Curious Greg - Curious Cat to Mastodon crossposter # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. import requests, sqlite3, json from mastodon import Mastodon from flask import Flask, render_template, request cfg = json.load(open("meta.json")) db = sqlite3.connect("database.db") c = db.cursor() c.execute("CREATE TABLE IF NOT EXISTS `data` (username VARCHAR NOT NULL, appid VARCHAR NOT NULL, appsecret VARCHAR NOT NULL, secret VARCHAR NOT NULL, latest_post VARCHAR)") app = Flask(cfg['name']) app.secret_key = cfg['flask_key'] @app.route('/') def main(): return render_template("landing_page.html") @app.route('/internal/auth_a') def internal_auth_a(): client_id = "abc" client_secret = "123" instance_url = request.args.get('url', default='mastodon.social', type=str) if not instance_url.startswith("https://"): instance_url = "https://{}".format(instance_url) # client_id, client_secret = Mastodon.create_app(cfg['name'], # api_base_url=instance_url, # scopes="write:statuses", # website=cfg['website']) #example URL: #https://fedi.lynnesbian.space/oauth/authorize?scope=read:favourites&response_type=code&redirect_uri=https://t5.codesections.com&client_id=CLIENT_ID_HERE&client_secret=CLIENT_SECRET_HERE client_info = { "client_id": client_id, "client_secret":client_secret, "scopes":"write:statuses", "website": cfg['website'] } return(json.dumps(client_info))