A Twitter plugin for Sopel
Project description
sopel-twitter
A Twitter plugin for Sopel.
Installation
Releases are hosted on PyPI, so after installing Sopel, all you need is pip
:
$ pip install sopel-twitter
If you want to use the development version, simply clone the repository and use
pip install path/to/sopel-twitter
Newer library versions
sopel-twitter
relies on a third-party library to access data,
which does not always publish its latest code to PyPI. If you run into problems
with this plugin, install the latest library code and
see if that solves your issue.
Please also feel free to submit pull requests updating this plugin's version constraints if you have tested a newer library release than what is currently allowed. Thanks for your help!
Configuring
Twitter account required to use this plugin as of 1 July 2023. You probably want to minimize the potential impact of adverse action by using a throwaway login instead of your real profile. New accounts can (as of 19 July 2023) be verified using only an email address.
The easiest way to configure sopel-twitter
is via Sopel's configuration
wizard – simply run sopel-plugins configure twitter
and enter the values
for which it prompts you.
Otherwise, you can edit your bot's configuration file:
[twitter]
username = mybotaccount
password = s3cretb0tp@ss
# Both Required
show_quoted_tweets = True
# Optional: For quote-tweets, send a second message showing the quoted tweet?
# Default: True
alternate_domains =
fxtwitter.com
vxtwitter.com
nitter.net
# Optional: What other domains should we treat like twitter domains?
# Default: fxtwitter.com, vxtwitter.com, nitter.net
Important housekeeping notes
The library this plugin uses for Twitter data access previously stored its
login session data in the current working directory. For Sopel, that was
the directory from which the sopel
command was run.
As of sopel-twitter 1.3.1, a newer library version became available with
support for storing session data in Sopel's homedir
instead. You can clean
up the old session files left behind by sopel-twitter 1.3.0 by running e.g.
find / -type f -name 'sopel-twitter*.json' 2>/dev/null
. (Running find
on
/
tends to output numerous "Permission denied" errors, so suppressing stderr
is recommended.)
Prior to the release of sopel-twitter 1.3.2, the session data filename changed
upstream from .json
to .tw_session
. This plugin will attempt to rename the
old session file if it exists, but if that fails you might want to clean up the
leftover config_name.sopel-twitter.json
file.
Usage
Just send a link to a tweet or profile!
You can also retrieve a user's info with the .twitinfo
command:
< Wiz> .twitinfo NASA
< Sopel> [Twitter] NASA (@NASA) ✔️ | Pale Blue Dot | http://www.nasa.gov/
| 204 friends, 46,602,251 followers | 65,377 tweets, 13,040 ♥s
| Joined: 2007-12-19 - 20:20:32UTC | There's space for everybody. ✨
Changes between 1.3.7 and 1.3.8
Added:
- Handle more exception types when fetching tweets (#66)
Changed:
- Upgrade minimum
tweety-ns
version to 1.1.4 (#65) - Check public session state property instead of internal value (#65)
Changes between 1.3.6 and 1.3.7
Added:
- Gracefully truncate long tweet text (#61)
Changed:
- Upgrade to newer
tweety-ns
library: 1.1.* >= 1.1.2 (#63)
Meta:
- Add automatic package publishing
- Clean up unused source files
Changes between 1.3.5 and 1.3.6
Added:
- Handle
fixvx.com
links by default (#60) - Better documentation about keeping the upstream library updated
Changes between 1.3.4 and 1.3.5
Changed:
- Upgrade to newer
tweety-ns
library: any 1.0.* version (#59)
Changes between 1.3.3 and 1.3.4
Fixed:
- Handle
int
fields ofUser
that can beNone
, again (#57)
Changes between 1.3.2 and 1.3.3
Added:
- Handle
x.com
links (#55)
Fixed:
- Handle
int
fields ofUser
that can beNone
(#54) - Correctly escape extra domains when lazily building URL patterns (#56)
Changes between 1.3.1 and 1.3.2
Changed:
- Use updated
tweety-ns
0.9.9 with updated session storage filename (#53).json
has become.tw_session
sopel-twitter
will automatically rename the old.json
file(s) if present, unless the correspondingtw_session
file already exists (i.e.tweety-ns
was updated prior to installingsopel-twitter
1.3.2)
Fixed:
- Handle new
ActionRequired
exception type (#53)- Just a graceful failure message, for now; open an issue if you actually run into this, to help gauge how important more comprehensive handling might be.
Changes between 1.3.0 and 1.3.1
Changed:
- Use updated
tweety-ns
with option to specify session JSON storage location (#51)- Now stored in Sopel's
homedir
- See README for shell commands suggested for cleaning up the old ones
- Now stored in Sopel's
Fixed:
- Handle new
DeniedLogin
exception (#52)
Changes between 1.2.0 and 1.3.0
Breaking:
- Login with username/password is now required
- Creating a throwaway Twitter account is recommended
Changed:
- Updated to
tweety-ns
0.9 (#50)
Changes between 1.1.0 and 1.2.0
Breaking:
- Twitter cookies are now required
Changed:
- Updated to
tweety-ns
0.8 (#48)
Changes between 1.0.1 and 1.1.0
Changed:
- Updated to
tweety-ns
0.7, including revamped exceptions (#46)
Changes between 1.0.0 and 1.0.1
Fixed:
- Don't cache Tweety object; it stops working after some hours (#43)
Changes between 0.4.1 and 1.0.0
Important: Package name is now sopel-twitter
Added:
- Option to specify additional domains that can be treated as Twitter links (#34, #37)
Changed:
- Use
BooleanAttribute
setting type where appropriate (#27) - Use future-proof
plugin
decorators (#30) - Migrate from namespace package to entry point (#41)
- Migrate to Tweety library for data access; no more API keys (#42)
- Minimum Sopel version raised to 7.1 (#27)
Fixed:
/i/web/status
links (#33)- Collapse consecutive newlines (#36)
- Properly set up logger (#38)
Changes between 0.4.0 and 0.4.1
Fixed:
- Detecting user profile links with trailing slash or query params (#28)
- Error when quoted tweet has been deleted (#31)
Changes between 0.3.2 and 0.4.0
Added:
.twitinfo
command for user lookup (#20)- Support for mobile links (#21)
Changed:
- Updated documentation for configuration (#25) and setup of Twitter API account
Fixed:
- Media link output when quoted tweets are involved (#24)
Changes between 0.3.1 and 0.3.2
Fixed:
- Regression in profile link handling (#16)
Changes between 0.3.0 and 0.3.1
Fixed:
- Stricter
/i/
URL matching (#15)
Changes between 0.2.1 and 0.3.0
Changed:
- Tweet output includes a timestamp now (#13)
- Improved media link handling (#5, #12)
Added:
- Handling for profile/user links (#7)
- Handling for less common
/i/web/status
style links (#11)
Fixed:
- Decode HTML entities before output (#14)
Changes between 0.2.0 and 0.2.1
Fixed:
- Some quoted tweets would cause
KeyError: 'text'
(#9)
Changes between 0.1.2 and 0.2.0
Changed:
- Now requires Sopel 7.x (#8)
- Newlines in tweet text will be replaced with a carriage return symbol, to indicate author intention (#4)
Added:
- Handling of 280-character tweets (#4)
- More graceful handling of API errors (#6)
Meta:
- Package metadata updated (new maintainer, HTTPS links)
Changes between 0.1.1 and 0.1.2
Added:
- Tweet link handling
Changes between 0.1.0 and 0.1.1
Fixed:
- Unicode on Python 3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sopel_twitter-1.3.8.tar.gz
.
File metadata
- Download URL: sopel_twitter-1.3.8.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65a0df4f33b2acc1bc1e6c5783ef0b2892ecf1841ca49ccdbccd0bd9581f7c3c |
|
MD5 | 6d21b56ac07767556b2ec073050a98d5 |
|
BLAKE2b-256 | f38fa8ad6afe6768c5e7d0541ac41bf7fa67735328e7cd60e58c9331588084e0 |
File details
Details for the file sopel_twitter-1.3.8-py3-none-any.whl
.
File metadata
- Download URL: sopel_twitter-1.3.8-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bec1715dc9a8f3ffd8a2cf1bbe09ca9d00973fc6739d458a6920ba475b2fd1bd |
|
MD5 | 98c5448070312d903c371aeaee70e289 |
|
BLAKE2b-256 | 9b47657b406ecd85d57603cdcf869305342968f3eee45727ce3b592bf86b2166 |