“I’d rather share values with you than politics. Sharing ‘politics’ is like sharing an old rusty knife that was probably used to kill someone.” – Dr. Freckles
“Type 1 or 2 civilization? – fuck it. Type Turbo Cocaine Star Demon civilization is when you start building Dyson hotrods out of other universes.” – Dr. Freckles
beyond type 1
beyond an ordinary Dyson hotrod …
beyond galactic hotrods and multi span galactic hotrods
Mother fucking UNIVERSE SCALE HYPER STAR SHIPS … and they don’t care.
And mind you: this story MIGHT NOT apply to YOU and YOUR family, but it applies to many – and the keyword today is “enough” people.
A long time ago your grandfather or great grandfather or grandmother or BOTH was made a great offer … given free shit … in some form by a central bank or the government or both, cuz it’s really both …
They believed it was a consequence free choice. Others said they would be proven wrong, THEY, mocked the others.
Below is a general recipe for experimenting with RSS feeds AND speech synthesizers.
For the speech synthesis there are two scripts, very similar, one will work with ESPEAK (free open source), the other works with Microsoft SAPI.
In order to run these scripts you will need MYSQL installed. You will need a minimum level of understanding of how MYSQL works. You can easily translate the database piece to ODBC, and the rest to PowerShell or whatever. That’s your business, not mine.
Once you’ve installed MYSQL and the server is running, create a database called “NEWS”: create database NEWS;
After you’ve created the NEWS database, using the CLI (command line interface) as above, type command: use NEWS;
Once you are in the NEWS database, copy and paste the entire script below into the CLI or save as text file and consult from the CLI using the command: source rss.sql (assuming you stored the create table text below in that file)
In the example I’m using the ROOT database, why? – because IDGAF. But best practice is to create special database users with limited permissions. If you’ve installed your MYSQL database without granting permission to external (port) connections? – then it’s not a concern.
Running the aggregator might trigger a site to block you or even your own network. This behavior, which was innocuous 20 years ago, is now attacked and classified as an aggressive network behavior. Just be careful.
After you’ve run the aggregation script (and the script can be run by CRON or Task Manager daily or hourly if you like), then you can run one of the speech synthesis apps, reading headlines.
If you have a compatible shortwave radio, with upper and lower side band, and a LINUX computer running JS8 Call with appropriate libraries for CAT control? – then look into this and you can set up a headline service over shortwave: https://planetarystatusreport.com/?p=7432
Have fun getting your daily dose of the fucking news.
Create Table Script for RSS Database
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00";
CREATE TABLE `RSS` ( `ID` bigint(20) NOT NULL, `SOURCE` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `LINK` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `TITLE` varchar(400) COLLATE utf8_unicode_ci NOT NULL, `PUBLISHED` datetime NOT NULL, `ARTICLE` text COLLATE utf8_unicode_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `RSS` MODIFY `ID` bigint(20) NOT NULL AUTO_INCREMENT; COMMIT;
Python Script for Aggregating RSS Feeds and storing stories locally
from __future__ import print_function
import os import feedparser import os.path, time import json import math import time import urllib.parse as pr import xml.etree.ElementTree as ET from bs4 import BeautifulSoup as BS from requests import get from os.path import exists from socket import socket, AF_INET, SOCK_STREAM from decimal import Decimal from datetime import datetime, date, timedelta from anyascii import anyascii import mysql.connector
def GetArt(number): # Connect with the MySQL Server cnx = mysql.connector.connect(user=usern, database=dbn, password=passw, host=servern, port=portn) qry = "select ARTICLE, SOURCE, LINK from RSS where ID = %s" % (number) cur = cnx.cursor(buffered=True) cur.execute(qry) retRes = cur.fetchall() cnx.close() return retRes[0]
def GetTopHourly(source): # Connect with the MySQL Server cnx = mysql.connector.connect(user=usern, database=dbn, password=passw, host=servern, port=portn) qry = "select ID, TITLE, PUBLISHED, SOURCE, length(ARTICLE) as LOF from RSS where SOURCE = '%s' order by PUBLISHED desc limit 1" % source cur = cnx.cursor(buffered=True) cur.execute(qry) retRes = cur.fetchall() cnx.close() return retRes
def GetTop(source, number): # Connect with the MySQL Server cnx = mysql.connector.connect(user=usern, database=dbn, password=passw, host=servern, port=portn) qry = "select ID, TITLE, PUBLISHED, SOURCE, length(ARTICLE) as LOF from RSS where SOURCE = '%s' order by PUBLISHED desc limit %s" % (source, number) cur = cnx.cursor(buffered=True) cur.execute(qry) retRes = cur.fetchall() cnx.close() return retRes
def AlreadySaved(link): # Connect with the MySQL Server cnx = mysql.connector.connect(user=usern, database=dbn, password=passw, host=servern, port=portn) qry = "select ID from RSS where LINK = '" + link + "'" cur = cnx.cursor(buffered=True) cur.execute(qry) cur.fetchall() rc = cur.rowcount cnx.close() if rc > 0: return True else: return False
def GetSql(qry): # Connect with the MySQL Server cnx = mysql.connector.connect(user=usern, database=dbn, password=passw, host=servern, port=portn) cur = cnx.cursor(buffered=True) cur.execute(qry) retRes = cur.fetchall() cnx.close() return retRes
#+-----------+--------------+------+-----+---------+----------------+ #| Field | Type | Null | Key | Default | Extra | #+-----------+--------------+------+-----+---------+----------------+ #| ID | bigint(20) | NO | PRI | NULL | auto_increment | #| SOURCE | varchar(100) | NO | | NULL | | #| LINK | varchar(255) | NO | UNI | NULL | | #| TITLE | varchar(400) | NO | | NULL | | #| PUBLISHED | datetime | NO | | NULL | | #| ARTICLE | text | NO | | NULL | | #+-----------+--------------+------+-----+---------+----------------+
qry1 = "select SOURCE, TITLE from RSS where PUBLISHED > curdate()-1 order by PUBLISHED desc;"
res = GetSql(qry1)
for rec in res: src = rec[0] tit = rec[1].replace("''", "") print(src + ": " + tit)
def GetSql(qry): # Connect with the MySQL Server cnx = mysql.connector.connect(user=usern, database=dbn, password=passw, host=servern, port=portn) cur = cnx.cursor(buffered=True) cur.execute(qry) retRes = cur.fetchall() cnx.close() return retRes
#+-----------+--------------+------+-----+---------+----------------+ #| Field | Type | Null | Key | Default | Extra | #+-----------+--------------+------+-----+---------+----------------+ #| ID | bigint(20) | NO | PRI | NULL | auto_increment | #| SOURCE | varchar(100) | NO | | NULL | | #| LINK | varchar(255) | NO | UNI | NULL | | #| TITLE | varchar(400) | NO | | NULL | | #| PUBLISHED | datetime | NO | | NULL | | #| ARTICLE | text | NO | | NULL | | #+-----------+--------------+------+-----+---------+----------------+
qry1 = "select SOURCE, TITLE from RSS where PUBLISHED > curdate()-1 order by PUBLISHED desc;"