tootgroup.py


Nametootgroup.py JSON
Version 1.4.3 PyPI version JSON
download
home_page
SummaryGroup account features on Mastodon, Pleroma and Friendica
upload_time2023-12-18 00:30:45
maintainer
docs_urlNone
author
requires_python>=3.8
license
keywords mastodon pleroma friendica toot group account fediverse
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            

`tootgroup.py` - emulate group accounts on Mastodon and Pleroma
=================================================

What is this?
-------------

Some social media platforms allow groups of users to post into a unified "group"
timeline/instance/whatever you want to call it. This is currently not possible
on Mastodon or Pleroma without giving all members full login credentials to a
group. `tootgroup.py` is an attempt to solve this specific use case.

tootgroup.py groups can be hosted on Mastodon or Pleroma. But you can post
TO the group FROM any ActivityPub service although there might be some
incompatibilities. Currently Mastodon, Pleroma and Friendica are tested platforms
for posting TO the group. More tests are welcome!

How does it work?
-----------------

`tootgroup.py` has to be set up on a computer and run periodically. It reads the
notifications from the Mastodon/Pleroma account it is connected to and filters
them for messages to repost. There are two methods of creating a group post. One
or both of them can be enabled during the setup procedure.

1. Public mentions of group members are boosted if they preceed the group's
   name with an Exclamation Mark like "!@mastodon". For for posts originating
   from Friendica the correct syntax is "!mastodon".

2. `tootgroup.py` can also look for direct messages from group members. If the
   group is @mentioned at the very beginning, The message will be reposted as
   a new public toot originating directly from the group account. The status
   text as well as media files are included. The originating user will not be
   shown publicly. (It can still be seen by all group and instance
   administrators tough!)

If both repost methods are disabled, `tootgroup.py` will still run but not repost
anything.

But how to simply use it?
-------------------------

### Mastodon/Pleroma

1. Write a message that should be boosted by the group:
   Just include "!@group_name" anywhere in the toot.

   EXAMPLE: "OHAI! just found that !@mastodon thingie!"

2. Write a message that should appear as a new post from the group:
   Put "@group_name" at the very beginning of a direct/private message.

   EXAMPLE: "@mastodon HERE BE THE MESSAGE TEXT"

### Friendica

Because of its history and much more flexible nature, things are a bit different
and maybe even a bit more complicated when posting from Friendica. Nevertheless
this is fully supported, tested and in daily use.

1. Write a message that should be reposted by the group:
   Friendica handles the Exclamation Mark in a special way because it is also
   used to address the Friendica Forum functionality. Therefore the Asterisk is
   used instead of the Exclamation Mark. Just include "*@group_name" anywhere in
   the message. - This would also work in Mastodon/Pleroma, just don't tell them
   ;-)

   EXAMPLE (from Friendica): "OHAI! just found that *@mastodon thingie!"

2. Write a message that should appear as a new post from the group:
   You can send a direct message by limiting the visibility of a "normal" post
   or by using the personal message menu. The second method does not work with
   images though, so creating normal posts with limited visibility is preferred.
   You should always leave the Title/Subject field empty, it might not work as
   expected otherwise. Put "@group_name" at the very beginning of a
   direct/private message.

   EXAMPLE: "@mastodon HERE BE THE MESSAGE TEXT"

How to set up?
--------------

The easiest way to install `tootgroup.py` is via PyPI, the Python Package Index.
Use `pip3 install tootgroup.py` to install it as well as all its dependencies.

It is also possible to download the script manually from the GitHub repository at
<https://github.com/oe4dns/tootgroup.py> In that case the necessary dependencies
have to be provided too:

`tootgroup.py` requires <https://github.com/halcy/Mastodon.py> as well as
<https://pypi.org/project/platformdirs> to run. Install them via your
operating system's package manager, pip or even manually.

`tootgroup.py` will guide you through setup by asking all information it needs
when you run it from the commandline for the first time. Being somewhat
comfortable with Python scripting and the commandline in general might help
if difficulties should appear.

1. You need an account on any Mastodon or Pleroma instance that will act as
   your group account. Think about if you should mark it as a "Bot".

2. Run `tootgroup.py` from the command line.

3. `tootgroup.py` will ask you for all needed setup data and try to get them
   right by connecting to the Mastodon/Pleroma server. If it cannot do so, it
   will tell you and you can retry. When successful, `tootgroup.py` will write
   the configuration to its tootgroup.conf file and read it from there next
   time you run the script.

   The place for storing configuration is operating system dependent but will be
   shown during the first-run/setup phase. A local tootgroup.conf file placed
   next to the `tootgroup.py` script will override these settings though and can
   be used for development or testing purposes.

4. If you want to set up `tootgroup.py` for more than one group, you can run it
   again while specifying the "--group GROUP_HANDLE" flag. This will then
   generate an independent configuration that will be read each time you call
   `tootgroup.py` using this name. If you don't specify any group name, the
   handle "default" is created and used automatically

5. Test the funcionality by sending direct messages and "!@mentions" to your
   group while running `tootgroup.py` manually. See if things work as expected.
   The script will print an according message after each successful run.
   If everything works, run the script periodically via cron and enjoy
   groop-tooting!

   Here is an example for a crontab entry that runs `tootgroup.py` every two minutes:

   `*/2 * * * * /path/to/tootgroup.py --group default`

6. There is also the "-d" or "--dry-run" commandline flag that prevents any toots.
   You can use it to test what would be posted by the script.

   Use "-h" or "--help" for more information about all available options

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "tootgroup.py",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "mastodon,pleroma,friendica,toot,group,account,fediverse",
    "author": "",
    "author_email": "Andreas Schreiner <andreas.schreiner@sonnenmulde.at>",
    "download_url": "https://files.pythonhosted.org/packages/8f/d0/c7f69a18e4a43cd5a9684ce17cf0cadaf74a61b08ea6350f33ed3cb03d5a/tootgroup.py-1.4.3.tar.gz",
    "platform": null,
    "description": "\n\n`tootgroup.py` - emulate group accounts on Mastodon and Pleroma\n=================================================\n\nWhat is this?\n-------------\n\nSome social media platforms allow groups of users to post into a unified \"group\"\ntimeline/instance/whatever you want to call it. This is currently not possible\non Mastodon or Pleroma without giving all members full login credentials to a\ngroup. `tootgroup.py` is an attempt to solve this specific use case.\n\ntootgroup.py groups can be hosted on Mastodon or Pleroma. But you can post\nTO the group FROM any ActivityPub service although there might be some\nincompatibilities. Currently Mastodon, Pleroma and Friendica are tested platforms\nfor posting TO the group. More tests are welcome!\n\nHow does it work?\n-----------------\n\n`tootgroup.py` has to be set up on a computer and run periodically. It reads the\nnotifications from the Mastodon/Pleroma account it is connected to and filters\nthem for messages to repost. There are two methods of creating a group post. One\nor both of them can be enabled during the setup procedure.\n\n1. Public mentions of group members are boosted if they preceed the group's\n   name with an Exclamation Mark like \"!@mastodon\". For for posts originating\n   from Friendica the correct syntax is \"!mastodon\".\n\n2. `tootgroup.py` can also look for direct messages from group members. If the\n   group is @mentioned at the very beginning, The message will be reposted as\n   a new public toot originating directly from the group account. The status\n   text as well as media files are included. The originating user will not be\n   shown publicly. (It can still be seen by all group and instance\n   administrators tough!)\n\nIf both repost methods are disabled, `tootgroup.py` will still run but not repost\nanything.\n\nBut how to simply use it?\n-------------------------\n\n### Mastodon/Pleroma\n\n1. Write a message that should be boosted by the group:\n   Just include \"!@group_name\" anywhere in the toot.\n\n   EXAMPLE: \"OHAI! just found that !@mastodon thingie!\"\n\n2. Write a message that should appear as a new post from the group:\n   Put \"@group_name\" at the very beginning of a direct/private message.\n\n   EXAMPLE: \"@mastodon HERE BE THE MESSAGE TEXT\"\n\n### Friendica\n\nBecause of its history and much more flexible nature, things are a bit different\nand maybe even a bit more complicated when posting from Friendica. Nevertheless\nthis is fully supported, tested and in daily use.\n\n1. Write a message that should be reposted by the group:\n   Friendica handles the Exclamation Mark in a special way because it is also\n   used to address the Friendica Forum functionality. Therefore the Asterisk is\n   used instead of the Exclamation Mark. Just include \"*@group_name\" anywhere in\n   the message. - This would also work in Mastodon/Pleroma, just don't tell them\n   ;-)\n\n   EXAMPLE (from Friendica): \"OHAI! just found that *@mastodon thingie!\"\n\n2. Write a message that should appear as a new post from the group:\n   You can send a direct message by limiting the visibility of a \"normal\" post\n   or by using the personal message menu. The second method does not work with\n   images though, so creating normal posts with limited visibility is preferred.\n   You should always leave the Title/Subject field empty, it might not work as\n   expected otherwise. Put \"@group_name\" at the very beginning of a\n   direct/private message.\n\n   EXAMPLE: \"@mastodon HERE BE THE MESSAGE TEXT\"\n\nHow to set up?\n--------------\n\nThe easiest way to install `tootgroup.py` is via PyPI, the Python Package Index.\nUse `pip3 install tootgroup.py` to install it as well as all its dependencies.\n\nIt is also possible to download the script manually from the GitHub repository at\n<https://github.com/oe4dns/tootgroup.py> In that case the necessary dependencies\nhave to be provided too:\n\n`tootgroup.py` requires <https://github.com/halcy/Mastodon.py> as well as\n<https://pypi.org/project/platformdirs> to run. Install them via your\noperating system's package manager, pip or even manually.\n\n`tootgroup.py` will guide you through setup by asking all information it needs\nwhen you run it from the commandline for the first time. Being somewhat\ncomfortable with Python scripting and the commandline in general might help\nif difficulties should appear.\n\n1. You need an account on any Mastodon or Pleroma instance that will act as\n   your group account. Think about if you should mark it as a \"Bot\".\n\n2. Run `tootgroup.py` from the command line.\n\n3. `tootgroup.py` will ask you for all needed setup data and try to get them\n   right by connecting to the Mastodon/Pleroma server. If it cannot do so, it\n   will tell you and you can retry. When successful, `tootgroup.py` will write\n   the configuration to its tootgroup.conf file and read it from there next\n   time you run the script.\n\n   The place for storing configuration is operating system dependent but will be\n   shown during the first-run/setup phase. A local tootgroup.conf file placed\n   next to the `tootgroup.py` script will override these settings though and can\n   be used for development or testing purposes.\n\n4. If you want to set up `tootgroup.py` for more than one group, you can run it\n   again while specifying the \"--group GROUP_HANDLE\" flag. This will then\n   generate an independent configuration that will be read each time you call\n   `tootgroup.py` using this name. If you don't specify any group name, the\n   handle \"default\" is created and used automatically\n\n5. Test the funcionality by sending direct messages and \"!@mentions\" to your\n   group while running `tootgroup.py` manually. See if things work as expected.\n   The script will print an according message after each successful run.\n   If everything works, run the script periodically via cron and enjoy\n   groop-tooting!\n\n   Here is an example for a crontab entry that runs `tootgroup.py` every two minutes:\n\n   `*/2 * * * * /path/to/tootgroup.py --group default`\n\n6. There is also the \"-d\" or \"--dry-run\" commandline flag that prevents any toots.\n   You can use it to test what would be posted by the script.\n\n   Use \"-h\" or \"--help\" for more information about all available options\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Group account features on Mastodon, Pleroma and Friendica",
    "version": "1.4.3",
    "project_urls": {
        "Homepage": "https://github.com/oe4dns/tootgroup.py"
    },
    "split_keywords": [
        "mastodon",
        "pleroma",
        "friendica",
        "toot",
        "group",
        "account",
        "fediverse"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "54cb32bd8d0a186f7ecf7fa04bcf7be4fb26637e1a141adaa1a41c772d781642",
                "md5": "1ff6b0da1e1667b3c89cad7d2630a539",
                "sha256": "3db68b8f6d8858264d1e4ec08dab7eb47d05bce46433d6c4ed8b9d7cc81b76d8"
            },
            "downloads": -1,
            "filename": "tootgroup.py-1.4.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1ff6b0da1e1667b3c89cad7d2630a539",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 25705,
            "upload_time": "2023-12-18T00:30:44",
            "upload_time_iso_8601": "2023-12-18T00:30:44.386090Z",
            "url": "https://files.pythonhosted.org/packages/54/cb/32bd8d0a186f7ecf7fa04bcf7be4fb26637e1a141adaa1a41c772d781642/tootgroup.py-1.4.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8fd0c7f69a18e4a43cd5a9684ce17cf0cadaf74a61b08ea6350f33ed3cb03d5a",
                "md5": "667c79f2cac2386ab5c679249783ea7e",
                "sha256": "793be1daf93be5e17cc6cb53d2f1bc405f9132d340911a1edc452421bcd5b5fc"
            },
            "downloads": -1,
            "filename": "tootgroup.py-1.4.3.tar.gz",
            "has_sig": false,
            "md5_digest": "667c79f2cac2386ab5c679249783ea7e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 24268,
            "upload_time": "2023-12-18T00:30:45",
            "upload_time_iso_8601": "2023-12-18T00:30:45.783132Z",
            "url": "https://files.pythonhosted.org/packages/8f/d0/c7f69a18e4a43cd5a9684ce17cf0cadaf74a61b08ea6350f33ed3cb03d5a/tootgroup.py-1.4.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-18 00:30:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "oe4dns",
    "github_project": "tootgroup.py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "tootgroup.py"
}
        
Elapsed time: 0.14871s