![]() |
2 years ago | |
---|---|---|
static | 2 years ago | |
templates | 2 years ago | |
.gitignore | 2 years ago | |
LICENSE-AGPL3.txt | 2 years ago | |
README.md | 2 years ago | |
requirements.txt | 2 years ago | |
sample-env.txt | 2 years ago | |
tweet_source.py | 2 years ago | |
twitter_app.py | 2 years ago | |
twitter_archive_facade.py | 2 years ago | |
twitter_v2_facade.py | 2 years ago |
The purpose of this app is two fold:
Since the Twitter API only provides 7 days of historical data, we download a copy of the archive and use it to augment live data from the API and enhance the user experience with the historical data.
This is the merger of two projects which are on their way toward meeting in the middle.
Initially the Archive tech was developed for personal reporting, and then my quest into Python brought me to web development and I needed a known domain to build for so I could focus on learning the web tech.
The intent of this release is to give a deployable Twitter client away to open source, and then bring the archive functionality into the UI. At the time of release the Archive functionality will be obscure but present to who looks for it.
The user interface is built to be as simple to customize as possible for the power user.
It connects to the regular Twitter site using the official method that is well documented on the developer site.
It minimizes the need to use Javascript for customization to the extent possible, making the experience good for programmers who have not mastered modern web browser nuances.
A Twitter's accounts Archive can be requested from settings; it takes about a day to deliver and is 500MB-2GB, depending largely on how much media was posted. An archive of 50k Tweets is about 50MB of raw tex or 20MB compressed, and can be requested once per month. The Tweets file is not in a usable format, requiring processing even to read into a JSON parser.
One in memory it's simply a large list of Tweets and requires manual coding to do anything useful. The first thing we do is put it into an SQLite3 database for fast and easy querying using SQL, a proven tool known by non-programmer business analysts worldwide.
Once the archive is in a Database, we need an interface to work with it. Since the data is derived from the live site's data, we fit it into a user interface that works like the regular Twitter app.
Using HTMx allows us to get away without much Javascript on the client side. It's a throwback
to earlier days of web development pre-Angular and Reach and into the era of jQuery Ajax forms,
but it codifies the operations via custom HTML attributes beginning with hx-~
.
Since I intend to retain full copyright and re-license portions of the project I am only able to accept contributions with a copyright assignment, similar to how the Apache project works.
I'm open to substantial contributions with that in mind, and more importantly I'd love to pay contributors for their work; as such, you may donate to me and I can share the wealth while maintaining my business constraints. I know this may rub some free software folks the wrong way, such as a younger version of myself. These days one needs to be serious about the business of their software, and so releasing my work to the public using a business unfriendly open source license is the balance I can offer.
The project is licensed to the public under the AGPL, requiring disclosure of the source code however it is used.
Please contact me for a commercial or copyleft license for portions of the project.
Copyright (C) 2021-22 Harlan J. Iverson; all rights reserved.