- HTML 55.9%
- Python 32.5%
- Witcher Script 4.1%
- CSS 3.5%
- Shell 2.3%
- Other 1.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| api | ||
| bskybot@cf68da65aa | ||
| error | ||
| static | ||
| templates | ||
| trump-truth-social-archive@40a8834237 | ||
| whoops | ||
| .gitignore | ||
| .gitmodules | ||
| .lasttruth | ||
| bot.py | ||
| clean.sh | ||
| cleansource.py | ||
| quote.bak | ||
| rdt_tweets.txt | ||
| README.md | ||
| realfakene.ws | ||
| rfn-api.service | ||
| UPDATE.md | ||
Real Fake News
realfakene.ws is a joke started during the first term of Donald Trump's unique American leadership. As he has/had a propensity for posting foreign and domestic policy on social media at all hours, we thought it might be comical to ingest the bulk of his social media posts and horf out some Markov chains that vaguely identified as English Sentences. After the 2020 election, rfn was shutdown, but seeing as we're back in the saddle after 2024, it has been resurrected.
Important bits
We picked Markovify for the chain generation, not for a specific reason, but it absolutely does work, which is important. The whole thing runs as a Flask app, behind both gunicorn and nginx as a reverse proxy.
You'll need sqlite for database stuff, we might eventually refactor for postgres or mysql at some point, but probably don't expect that any time soon. Otherwise, a SystemD service file is included because that's what our server (and our admin) prefers.
Before starting this for the first time, you'll want to initialize the sqlite db in the api folder, probably as follows:
sqlite3 aFile.db "CREATE TABLE quotes (id integer primary key, hash varchar(64) not null, quote text not null, real bool default 0);"
Sources
Ok so here's the fun part: random people on the internet have done the work to get both all of the djt tweets and (very recently) truth social posts into a pair of github repos (see the bottom of static/sources.txt). For interviews, press gaggles, speeches, and rallies, Factba.se is used and then manually parsed. One day, we might automate this, but don't expect that any time soon (or, frankly, ever); we've regex'd the absolute nuts off of this and it perpetually sucks.
Cleaning up the truth posts is currently mostly automated, but that's a work
in progress still. Effectively, the only part not done by script is actually
importing the new entries into the quote.db.
Part of the "cleaning" process is removing links in posts, as well as posts that are JUST 'Media post's, because this is a basically text only website tyvm and we do not entirely trust whatever is being posted from those accounts to be something we want to have represented anywhere.
Some sources are distinctly shortened from the actual source; this is just because we've removed duplicate lines (sometimes there are 12-20 different lines that ONLY read "Hello" or "Thank you" or [various campaign words], so... yea).
But Wait, There's More!
There's also code here for a Bluesky bot that posts random ... uh... news items? that include links back to the quote in question. Currently live, it can be found @realfakene.ws.
Contact
If you desperately need to ask a question about this repo, I guess contact help@oddte.ch and put RealFakeNe.ws in the subject.