Got an IndieWeb site? Want to interact with federated social networks like Mastodon, Hubzilla, and more? Bridgy Fed is for you.
 
 
 
 
Go to file
Ryan Barrett 2c15820ef6
webmention => AP: handle multiple in-reply-to links
fixes #65. thanks again for reporting, @nekr0z!
2020-06-06 08:40:07 -07:00
.circleci tell circle to use python 3.7 2020-03-03 14:47:57 -08:00
static [ImgBot] Optimize images 2019-10-16 11:48:05 -07:00
templates webmention: refactor storing Responses so we can do it earlier 2017-10-26 12:31:04 -07:00
tests webmention => AP: handle multiple in-reply-to links 2020-06-06 08:40:07 -07:00
.gcloudignore webmention => AP: handle multiple in-reply-to links 2020-06-06 08:40:07 -07:00
.gitignore webmention => AP: handle multiple in-reply-to links 2020-06-06 08:40:07 -07:00
README.md readme: update dev setup instructions for python 3, etc 2019-12-26 21:14:05 -08:00
activitypub.py 404 requests for root paths that aren't user domains 2020-03-02 10:50:43 -08:00
add_webmention.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
app.py migrate to the app engine standard python 3 runtime! 2019-12-25 22:26:26 -08:00
app.yaml add oauth_dropins like for static file handlers, gunicorn req't 2019-12-26 07:57:12 -08:00
appengine_config.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
common.py demote logging.error since it creates an error in StackDriver Error Reporting 2020-05-19 08:08:12 -07:00
index.yaml migrate to the app engine standard python 3 runtime! 2019-12-25 22:26:26 -08:00
logs.py migrate to the app engine standard python 3 runtime! 2019-12-25 22:26:26 -08:00
models.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
oauth_dropins webmention: handle missing Content-Type header 2020-05-20 23:36:11 -07:00
redirect.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
render.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
requirements.txt webmention: handle missing Content-Type header 2020-05-20 23:36:11 -07:00
salmon.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
superfeedr.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
webfinger.py unify request handler classes and handle_exception; move away from HOST[_URL] 2020-01-31 14:40:11 -08:00
webmention.py webmention => AP: handle multiple in-reply-to links 2020-06-06 08:40:07 -07:00

README.md

Bridgy Fed Circle CI Coverage Status

Got an IndieWeb site? Want to interact with federated social networks like Mastodon, Hubzilla, and more? Bridgy Fed is for you.

https://fed.brid.gy/

Bridgy Fed connects the IndieWeb with federated social networks using ActivityPub and OStatus. Original design docs:

License: This project is placed in the public domain.

Development

You'll need Python 3. Install the Google Cloud SDK (aka gcloud) with the gcloud-appengine-python and gcloud-appengine-python-extras components. Then, run:

python3 -m venv local3
source local3/bin/activate
pip install -r requirements.txt

Now, run the tests to check that everything is set up ok:

gcloud beta emulators datastore start --no-store-on-disk --consistency=1.0 --host-port=localhost:8089 < /dev/null >& /dev/null &
python3 -m unittest discover
kill %1

Finally, run this in the repo root directory to start the web app locally:

dev_appserver.py --log_level debug --enable_host_checking false --support_datastore_emulator --datastore_emulator_port=8089 --application=bridgy-federated app.yaml

If you send a pull request, please include (or update) a test for the new functionality!

If you hit an error during setup, check out the oauth-dropins Troubleshooting/FAQ section. For searchability, here are a handful of error messages that have solutions there:

bash: ./bin/easy_install: ...bad interpreter: No such file or directory

ImportError: cannot import name certs

ImportError: No module named dev_appserver

ImportError: cannot import name tweepy

File ".../site-packages/tweepy/auth.py", line 68, in _get_request_token
  raise TweepError(e)
TweepError: must be _socket.socket, not socket

error: option --home not recognized

You may need to change granary, oauth-dropins, webmention-tools, mf2util, or other dependencies as well as as Bridgy Fed. To do that, clone their repo locally, then install them in "source" mode with e.g.:

pip uninstall -y granary
pip install -e <path to granary>

To deploy to the production instance on App Engine - if @snarfed has added you as an owner - run:

gcloud -q beta app deploy --no-cache --project bridgy-federated *.yaml

Compatibility

Here are in progress notes on how I'm testing interoperability with various federated social networks.

ActivityPub

Salmon