Git browser: Desktop-Utils/
This page presents code associated with the module/unit named above.
Desktop-Utils/feedlist.py
# -*- coding: utf-8 -*-
""" An rss to html converter """
__version__ = "0.0.1"
__author__ = "Roy Schestowitz"
try:
import StringIO
except ImportError:
from io import StringIO
from feedparser import parse as parsefeed
import feedparser
from datetime import datetime
import time
import dateutil.parser as dp
import dateutil.tz as dtz
# feedlist = ['https://planet.mozilla.org/rss20.xml', 'https://blog.mozilla.org/feed/', 'http://planet.ubuntu.com/rss20.xml', 'https://www.tecmint.com/feed/', 'https://itsfoss.com/rss', 'http://fedoraplanet.org/rss20.xml']
feedlist =[
'http://alien.slackbook.org/blog/feed/',
'http://allanmcrae.com/feed/',
'http://anniemachon.ch/feed',
'http://blog.cretaria.com/rss.xml',
'http://blog.diasporafoundation.org/feed',
'http://blog.hypriot.com/index.xml',
'http://blog.linuxmint.com/?feed=rss2',
'http://blog.lxde.org/?feed=rss2',
'http://blog.netbsd.org/tnf/feed/entries/rss',
'http://blogs.perl.org/atom.xml',
'http://blogs.zdnet.com/open-source/wp-rss2.php',
'http://design.canonical.com/feed',
'http://devconnected.com/feed/',
'http://distrowatch.com/news/dwd.xml',
'http://distrowatch.com/news/dww.xml',
'http://elementopie.com/feeds/geekrant/feed.xml',
'http://elinuxbook.com/feed',
'http://eqe-c.blogspot.com/feeds/posts/default',
'http://esr.ibiblio.org/?feed=rss2',
'http://fedoraplanet.org/rss20.xml',
'http://feed.jupiter.zone/allshows',
'http://feed.jupiter.zone/bsdnow',
'http://feedpress.me/unixtutorial',
'http://feeds2.feedburner.com/Command-line-fu',
'http://feeds2.feedburner.com/linuxbsdos',
'http://feeds2.feedburner.com/webupd8',
'http://feeds.arstechnica.com/arstechnica/open-source',
'http://feeds.cyberciti.biz/Nixcraft-LinuxFreebsdSolarisTipsTricks',
'http://feeds.feedburner.com/bkerensa',
'http://feeds.feedburner.com/BsdNowMp3',
'http://feeds.feedburner.com/d0od',
'http://feeds.feedburner.com/FreedomPenguin?format=xml',
'http://feeds.feedburner.com/gimpuserscom?format=xml',
'http://feeds.feedburner.com/henriquemachadoLXDE',
'http://feeds.feedburner.com/Ipwatchdog',
'http://feeds.feedburner.com/ItsFoss',
'http://feeds.feedburner.com/LinuxBsdAndEverythingElseThatsFun',
'http://feeds.feedburner.com/Linuxg',
'http://feeds.feedburner.com/linux-news/feeds',
'http://feeds.feedburner.com/linuxrig',
'http://feeds.feedburner.com/LnuxTech-lb',
'http://feeds.feedburner.com/martenssonsmeningarse',
'http://feeds.feedburner.com/noobslab',
'http://feeds.feedburner.com/Open',
'http://feeds.feedburner.com/oshogbo?format=xml',
'http://feeds.feedburner.com/PatentDocs',
'http://feeds.feedburner.com/PenDriveLinux',
'http://feeds.feedburner.com/RaphaelHertzogCom',
'http://feeds.feedburner.com/SimplyJun',
'http://feeds.feedburner.com/TechCrunch/',
'http://feeds.feedburner.com/tecmint',
'http://feeds.feedburner.com/tecosystems',
'http://feeds.feedburner.com/TheLinuxLinkTechShowOgg-vorbisFeed',
'http://feeds.feedburner.com/UbuntuGeek',
'http://feeds.feedburner.com/ubuntu-news',
'http://feeds.feedburner.com/ubuntuportal',
'http://feeds.twit.tv/floss.xml',
'http://fossforce.com/feed/',
'http://gnuworldorder.info/ogg.xml',
'http://goinglinux.com/oggpodcast.xml',
'http://grokthelaw.freeforums.net/rss/public',
'http://identi.ca/group/fsf/rss',
'http://ifthisbetreason.com/feed/',
'http://insights.ubuntu.com/feed',
'http://ipkitten.blogspot.com/feeds/comments/default?alt=rss',
'http://ipkitten.blogspot.com/feeds/posts/default',
'http://iptarget.blogspot.com/feeds/posts/default?alt=rss',
'http://irregulators.org/feed/',
'http://jackofkent.com/feed/',
'http://japanip.blogspot.com/feeds/posts/default',
'http://jhurani.com/feed.xml',
'http://kennyvn.com/feed',
'http://knowledgebasement.com/feed/',
'http://lcorg.blogspot.com/feeds/posts/default',
'http://lhspodcast.info/category/podcast-ogg/feed/',
'http://linoxide.com/feed',
'http://linuxblog.darkduck.com/feeds/posts/default',
'http://linux.blognotions.com/feed',
'http://linux.com/news/featured-blogs?format=feed&type=rss',
'http://linuxfoundation.org/feed',
'http://linuxgizmos.com/feed',
'http://linuxiumcomau.blogspot.com/feeds/posts/default?alt=rss',
'http://linuxlock.blogspot.com/feeds/posts/default?alt=rss',
'http://linuxroutes.com/feed',
'http://linuxscoop.com/feed/rss',
'http://liquidat.wordpress.com/feed/',
'http://lxer.com/module/newswire/headlines.rss',
'http://mab.nu/feed/',
'http://major.io/feed/',
'http://manchester.openrightsgroup.org/feed/',
'http://mandrivachronicles.blogspot.com/feeds/posts/default?alt=rss',
'http://mate-desktop.com/rss.xml',
'http://mate-desktop.org/rss.xml',
'http://mjg59.dreamwidth.org/data/rss',
'http://news.softpedia.com/newsRSS/Linux-7.xml',
'http://nomadbsd.org/rss.xml',
'http://openbytes.wordpress.com/feed/',
'http://patentblog.kluweriplaw.com/feed',
'http://patentlyo.com/feed',
'http://patenttrolls.org/feed/',
'http://pitivi.org/planet/rss20.xml',
'http://planet.fsfe.org/en/rss20.xml',
'http://planet.gnome.org/rss20.xml',
'http://planet.gnu.org/rss20.xml',
'http://planetkde.org/rss20.xml',
'http://planet.kernel.org/rss20.xml',
'http://planet.mageia.org/en/atom.php',
'http://planet.opensu.se/rss10.xml',
'http://planet.slackware-id.org/atom.xml',
'http://planet.ubuntu.com/rss20.xml',
'http://quiterss.org/en/rss.xml',
'http://rhelblog.redhat.com/feed',
'http://rip-kat.blogspot.com/feeds/posts/default',
'http://rss.slashdot.org/Slashdot/slashdotLinux',
'https://access.redhat.com/blogs/766093/feed',
'https://admin.cw.no/rss.xml',
'https://afhub.dev/feed.xml',
'https://alpinelinux.org/atom.xml',
'https://anchor.fm/s/d5999dc/podcast/rss',
'https://anticipat.wordpress.com/feed',
'https://antixlinux.com/feed/',
'https://anto.online/feed/',
'https://arcolinux.com/feed/',
'https://ariadne.space/feed/',
'https://arjenwiersma.nl/posts/rss.xml',
'https://asktogrow.com/feed/',
'https://audaciousamateur.blogspot.com/feeds/posts/default',
'https://baronhk.wordpress.com/feed',
'https://betanews.com/topic/linux/feed/',
'https://bkhome.org/news/feed.rss',
'https://blog.centos.org/feed/',
'https://blog.chromium.org/feeds/posts/default?alt=rss',
'https://blog.documentfoundation.org/feed/',
'https://blog.elementary.io/feed.xml',
'https://blog.ipfire.org/feed.xml',
'https://blog.irvingwb.com/blog/rss.xml',
'https://blog.ivnilv.com/posts/index.xml',
'https://blog.jolla.com/feed/',
'https://blog.mageia.org/en/feed/',
'https://blog.mozilla.org/feed/',
'https://blog.openshift.com/feed/',
'https://blog.patentology.com.au/feeds/posts/default',
'https://blog.rust-lang.org/inside-rust/feed.xml',
'https://blogs.apache.org/foundation/feed/entries/rss',
'https://blogs.coreboot.org/feed/',
'https://blogs.oracle.com/linux/compendium/rss',
'https://blogs.oracle.com/linux/greg-marsden/rss',
'https://blog.supertuxkart.net/feeds/posts/default?alt=rss',
'https://blog.ubuntu.com/feed',
'https://blog.xfce.org/feed/',
'https://bluesabre.org/rss/',
'https://bootlin.com/feed/',
'https://bugzilla.mindrot.org/buglist.cgi?chfieldfrom=14d&query_format=advanced&title=Bug List&ctype=atom',
'https://buildvirtual.net/feed/',
'https://bytexd.com/feed/',
'https://cerebralab.com/feed.xml',
'http://schestowitz.com/Weblog/feed/',
'https://cissar.com/feed/',
'https://citizen.typepad.com/eyesontrade/atom.xml',
'https://citizix.com/feed/',
'https://codesposts.com/feed',
'https://containerjournal.com/feed/',
'https://couponmonkus.blogspot.com/feeds/posts/default?alt=rss',
'https://couragefound.org/feed',
'https://creativecommons.org/blog/feed/',
'http://scribblesandsnaps.com/feed/',
'https://daemonfc.wordpress.com/feed/',
'https://darryldias.me/feed/',
'https://datapocalypse.net/feed.xml',
'https://dbaxps.blogspot.com/feeds/posts/default?alt=rss',
'https://debian.community/feed.xml',
'https://dekisoft.com/feed/',
'https://demandprogress.org/home-portfolio-eye-candy/feed/',
'https://design.blog.documentfoundation.org/feed/',
'https://design.canonical.com/feed',
'https://destinationlinux.org/feed/mp3',
'https://devconnected.com/feed/',
'https://developer.ibm.com/feed/',
'https://developers.redhat.com/blog/feed/',
'https://devopsmyway.com/feed/',
'https://directory.fsf.org/wiki/Special:Ask/-5B-5BLast-20review-20date::%2B-5D-5D/mainlabel%3D/limit%3D50/order%3Ddescending/sort%3DLast-20review-20date/offset%3D0/format%3Drss/searchlabel%3DRecent-20updates-20RSS-20feed/title%3DFree-20Software-20Directory/description%3DRecent-20updates-20to-20Free-20Software-20Directory-20(directory.fsf.org)',
'https://discourse.ardour.org/t/ardour-6-0-is-released/103912.rss',
'https://distrowatch.com/news/dw.xml',
'https://draculaservers.com/tutorials/feed/',
'https://dt.iki.fi/feed',
'https://dwaves.org/feed/',
'http://segfault.linuxmint.com/feed/',
'https://elliehuxtable.com/rss/',
'https://elpais.com/rss/elpais/inenglish.xml',
'https://endeavouros.com/feed/',
'https://ericwbailey.design/feed/feed.xml',
'https://extinction.fyi/',
'https://fasterland.net/feed',
'https://feed.infoq.com/Linux/',
'https://feeds.feedburner.com/johnpilger',
'https://feeds.feedburner.com/kerneltalks',
'https://feeds.feedburner.com/linuxadminio',
'https://feeds.feedburner.com/linuxroutesFeed',
'https://feeds.feedburner.com/LinuxUprising',
'https://feeds.feedburner.com/speedysense',
'https://feeds.feedburner.com/tipsonunix',
'https://feeds.feedburner.com/TroyHunt',
'https://feeds.fireside.fm/linuxuserspace/rss',
'https://feed.theregister.com/atom?a=Liam Proven',
'https://feed.theregister.com/atom?a=Steven J. Vaughan-Nichols',
'https://firejaildns.wordpress.com/feed/',
'https://fitzcarraldoblog.wordpress.com/feed/',
'https://forum.manjaro.org/t/manjaro-21-3-0-ruah-released/114220.rss',
'https://fosspost.org/feed',
'https://freenode.net/news/atom.xml',
'https://frontpagelinux.com/feed/',
'https://fsfellowship.eu/feed.xml',
'https://fsfe.org/news/news.en.rss',
'https://godotengine.org/rss.xml',
'https://googleprojectzero.blogspot.com/feeds/posts/default?alt=rss',
'https://gottcode.org/feed.atom',
'https://gravitational.com/blog/index.xml',
'https://gstreamer.freedesktop.org/planet/rss20.xml',
'https://guix.gnu.org/feeds/blog.atom',
'https://hackwarenews.com/feed/',
'http://shallowsky.com/blog/index.rss',
'https://heathermeeker.com/feed/',
'https://howiehawkins.us/feed/',
'https://hunden.linuxkompis.se/feed.xml',
'https://hund.tty1.se/feed.xml',
'https://idroot.us/feed/',
'https://inkscape.org/news/feed/',
'https://insights.sei.cmu.edu/cert/atom.xml',
'https://internetfreedom.in/rss/',
'https://iridakos.com/feed.xml',
'https://istio.io/latest/news/feed.xml',
'https://itsfoss.com/feed',
'https://itsubuntu.com/feed/',
'http://sixgun.org/feed/gnr/',
'https://kdenlive.org/en/feed/',
'https://kerneltalks.com/feed',
'https://kifarunix.com/feed/',
'https://konstantin.blog/feed/',
'https://koutoupis.com/feed/',
'https://kparal.wordpress.com/feed/',
'https://kubernetes.io/feed.xml',
'https://labs.unit221b.com/feed/',
'http://slated.org/rss.xml',
'https://latenightlinux.com/feed/mp3',
'https://lateweb.info/feed/',
'https://learnlinuxandlibreoffice.org/news?format=feed&type=rss',
'https://liam-on-linux.dreamwidth.org/rss',
'https://librearts.org/categories/education/index.xml',
'https://librearts.org/categories/interviews/index.xml',
'https://librearts.org/categories/podcast/index.xml',
'https://librearts.org/categories/reviews/index.xml',
'https://librearts.org/categories/showcases/index.xml',
'https://librearts.org/categories/weekly/index.xml',
'https://libreboot.org/feed.xml',
'https://libreelec.tv/feed/',
'https://liliputing.com/tag/linux/feed',
'https://linmob.net/feed.xml',
'https://linoxide.com/feed/',
'https://linuxadmin.io/feed',
'https://linuxadmin.io/feed/',
'https://linuxbuz.com/feed',
'https://linuxconcept.com/feed/',
'https://linuxconfig.org/feed',
'https://linuxh2o.com/feed/',
'https://linuxhandbook.com/rss',
'https://linuxhint.com/feed',
'https://linuxhostsupport.com/blog/feed/',
'https://linuxiac.com/feed/',
'https://linuxinsider.com/feed/',
'https://linuxize.com/index.xml',
'https://linuxize.com/series/install-lamp-stack-on-centos-8/index.xml',
'https://linuxnewbieguide.org/feed',
'https://linuxnewbieguide.org/feed/',
'https://linuxnightly.com/feed/',
'https://linuxreviews.org/feed.rss',
'https://linuxsecurityblog.com/feed',
'https://linuxsecurityblog.com/feed/',
'https://linuxsecurity.com/linuxsecurity_articles.xml',
'https://linuxstans.com/feed/',
'https://linuxstoney.com/feed/',
'https://linuxtechlab.com/feed/',
'https://linuxtechmore.blogspot.com/feeds/posts/default?alt=rss',
'https://linuxtldr.com/rss',
'https://linux-video-tutorials.blogspot.com/feeds/posts/default?alt=rss',
'https://linuxwebdevelopment.com/feed/',
'https://linuxwizardry.com/feed/',
'https://lwn.net/headlines/newrss',
'https://medevel.com/rss/',
'https://media.libreplanet.org/atom/',
'https://mightygadget.co.uk/search/linux/feed/rss2/',
'https://mindplusplus.wordpress.com/feed/',
'https://mintcast.org/category/ogg/feed/',
'http://smlr.us/?feed=smlr-ogg',
'https://nardasev.wordpress.com/feed/',
'https://nbshare.io/blog/rss/',
'https://net2.com/feed/',
'https://news.itsfoss.com/feed/',
'https://news.netcraft.com/feed',
'https://news.opensuse.org/feed',
'https://nextgentips.com/feed/',
'https://nixos.org/news-rss.xml',
'https://onepagezen.com/feed/',
'https://opensourcesecurity.io/blog/feed',
'https://openwrt.org/feed.php?mode=list&ns=',
'https://osmc.tv/rss/',
'https://osnote.com/feed/',
'https://ostechnix.com/feed/',
'https://owlhowto.com/rss/',
'https://people.kernel.org/brauner/feed/',
'https://peppe8o.com/feed/',
'https://petapixel.com/tag/opensource/feed/',
'https://phandroid.com/guide/linux/feed/',
'https://phandroid.com/guide/linux-handheld/feed/',
'https://pitivi.wordpress.com/feed/',
'https://pixls.us/feed.xml',
'https://pl6anet.org/atom.xml',
'https://planet.archlinux.org/rss20.xml',
'https://planet.debian.org/rss20.xml',
'https://planet.documentfoundation.org/atom.xml',
'https://planet.freedesktop.org/rss20.xml',
'https://planet.gentoo.org/rss20.xml',
'https://planet.gnu.org/atom.xml',
'https://planet.mageia.org/en/?type=atom10',
'https://planet.mozilla.org/rss20.xml',
'https://planet.opensuse.org/en/rss20.xml',
'https://poolp.org/feeds/all.atom.xml',
'https://portswigger.net/daily-swig/rss',
'https://postmarketos.org/blog/feed.atom',
'https://provos.org/index.php?/feeds/index.rss2',
'https://publicdomainreview.org/rss.xml',
'https://publicknowledge.org/feed/',
'https://puri.sm/feed/',
'https://qmacro.org/autodidactics/feed.xml',
'https://rafaelc.org/index.xml',
'https://rasp.io/feed/',
'https://redhatstackblog.redhat.com/feed/',
'https://rich0gentoo.wordpress.com/feed/',
'https://rk.edu.pl/rss/',
'https://sequoia-pgp.org/index.xml',
'https://sfconservancy.org/feeds/news/',
'https://sfconservancy.org/feeds/omnibus/',
'https://softwarefreedom.org/feeds/blog/',
'https://solus-project.com/categories/budgie/index.xml',
'https://sparkylinux.org/feed',
'https://sysdfree.wordpress.com/rss',
'https://systemoverlord.com/atom.xml',
'https://tdarb.org/feed.xml',
'https://tecadmin.net/feed/',
'https://technastic.com/category/linux/feed/',
'https://techtutorialsite.com/feed/',
'https://thelinuxgurus.com/feed/',
'https://thenewstack.io/author/agam-shah/feed',
'https://thenewstack.io/author/jack-wallen/feed/',
'https://therecord.media/tag/linux/feed/',
'https://thisdavej.com/feed/',
'https://thishosting.rocks/feed',
'https://thishosting.rocks/feed/',
'https://trendoceans.com/feed/',
'https://tuxdigital.com/feed/',
'https://tuxdigital.com/feed/thisweekinlinux-ogg',
'https://tuxphones.com/rss/',
'https://ubuntu-mate.org/rss.xml',
'https://ubuntu-mm.net/feed/',
'http://suepo.org/public-full-rss-feed',
'https://unixcop.com/feed/',
'https://unlimitedhangout.com/feed/',
'https://us4.campaign-archive.com/feed?u=3bc51216ccfb4ed04928c0608&id=e02609f840',
'https://us-cert.cisa.gov/ics/advisories/advisories.xml',
'https://us-cert.cisa.gov/ncas/current-activity.xml',
'https://venturebeat.com/author/sean-michael-kerner/feed/',
'https://vitux.com/feed',
'https://wemakefedora.org/rss20.xml',
'https://wordpress.org/news/feed/',
'https://writtendescription.blogspot.com/feeds/posts/default',
'https://www.2daygeek.com/feed/',
'https://www.accessnow.org/feed/',
'https://www.admin-magazine.com/HPC/rss/feed/news',
'https://www.archlinux.org/feeds/news',
'https://www.atechtown.com/feed/',
'https://www.badvoltage.org/feed/ogg/',
'https://www.binaryemotions.com/feed/',
'https://www.bitchmedia.org/topic/113/feed',
'https://www.blackmoreops.com/feed',
'https://www.blogger.com/feeds/5398236625900904090/posts/default',
'https://www.claws-mail.org/releases.rss',
'https://www.cloudbooklet.com/feed/',
'https://www.cloudlinux.com/component/easyblog/?format=feed&type=rss&Itemid=292/feed',
'https://www.cnx-software.com/feed/?3',
'https://www.collabora.com/feed',
'https://www.consortiuminfo.org/consfeed.php',
'https://www.consortiuminfo.org/feed/',
'https://www.coreinfrastructure.org/feed/',
'https://www.ctrl.blog/feed/rss2',
'https://www.cyberciti.biz/atom/atom.xml',
'https://www.cyberciti.com/faq/feed/',
'https://www.cyberciti.com/feed/',
'https://www.cyberpratibha.com/feed/',
'https://www.datafix.com.au/BASHing/BASHing_data.xml',
'https://www.debian.org/News/news',
'https://www.defectivebydesign.org/blog/feed',
'https://www.dignited.com/feed//?s=linux',
'https://www.dnsknowledge.com/feed/',
'https://www.elinux.co.in/feed',
'https://www.elivecd.org/feed/',
'https://www.facethecompany.de/en/feed/',
'https://www.fairphone.com/en/feed/',
'https://www.forbes.com/sites/jasonevangelho/feed/',
'https://www.fosslicious.com/feeds/posts/default?alt=rss',
'https://www.fosslife.org/rss.xml',
'https://www.fosslinux.com/feed',
'https://www.fossmint.com/rss',
'https://www.freebsdfoundation.org/feed/',
'https://www.freebsd.org/news/rss.xml',
'https://www.fsfla.org/ikiwiki/blogs/lxo/index.en.rss',
'https://www.geeky-gadgets.com/category/linux/feed/',
'https://www.ghacks.net/category/linux/feed/',
'https://www.gimp.org/feeds/rss.xml',
'https://www.how2shout.com/linux/feed/',
'https://www.howtodojo.com/feed/',
'https://www.if-not-true-then-false.com/feed/',
'https://www.indidea.org/gael/blog/feed/',
'https://www.internetsociety.org/feed/',
'https://www.iottechtrends.com/feed/',
'https://www.itjungle.com/feed/',
'https://www.itprotoday.com/taxonomy/term/246/feed/rss.xml',
'https://www.itsfoss.net/feed/',
'https://www.itwire.com/journalist/sam-varghese.html?format=feed',
'https://www.iwocl.org/feed/',
'https://www.janes.com/defence/platforms/air-platforms/rss',
'https://www.jupiterbroadcasting.com/feed/',
'https://www.juve-patent.com/feed/',
'https://www.kali.org/feed',
'https://www.kdab.com/category/blogs/feed/',
'https://www.kernel.org/feeds/all.atom.xml',
'https://www.laquadrature.net/en/feed/',
'https://www.librebyte.net/en/feed',
'https://www.linuxcapable.com/feed/',
'https://www.linuxcloudvps.com/blog/feed',
'https://www.linuxcloudvps.com/blog/feed/',
'https://www.linuxforfreshers.com/feeds/posts/default',
'https://www.linuxformat.com/rss.xml',
'https://www.linuxjournal.com/news/feed',
'https://www.linuxjournal.com/node/feed',
'https://www.linuxlinks.com/feed/',
'https://www.linuxmadesimple.info/feeds/posts/default',
'https://www.linux.org/articles/index.rss',
'https://www.linuxschools.com/wordpress/feed/',
'https://www.linuxshelltips.com/feed/',
'https://www.linuxtechi.com/feed',
'https://www.linuxtechnews.com/feed/',
'https://www.linuxteck.com/feed/',
'https://www.linuxtrainingacademy.com/blog/feed/',
'https://www.linuxtrainingacademy.com/feed/',
'https://www.linuxtuto.com/feed/',
'https://www.lisenet.com/feed',
'https://www.lumendatabase.org/blog_feed.rss',
'https://www.maketecheasier.com/category/linux-tips/feed/',
'https://www.makeuseof.com/feed/category/linux/',
'https://www.managingip.com/rss.xml',
'https://www.markaicode.com/en/feed/',
'https://www.neowin.net/news/rss/linux',
'https://www.nextplatform.com/author/tpmn/feed/',
'https://www.openmandriva.org/spip.php?page=backend',
'https://www.openshot.org/blog/feeds/',
'https://www.ostechnix.com/feed',
'https://www.paritybit.ca/feeds/sitewide-feed.xml',
'https://www.pclinuxos.com/?feed=rss2',
'https://www.pendrivelinux.com/feed/atom/',
'https://www.pentestpartners.com/feed/',
'https://www.perl.com/article/index.xml',
'https://www.pirateparty.org.uk/rss.xml',
'https://www.postgresql.org/news.rss',
'https://www.pragmaticlinux.com/feed/',
'https://www.project-disco.org/category/competition/feed/',
'https://www.putorius.net/feed',
'https://www.qt.io/blog/rss.xml',
'https://www.qubes-os.org/feed.xml',
'https://www.raspberrypi.org/weekly/feed/',
'https://www.reallinuxuser.com/feed/',
'https://www.reddit.com/domain/techrights.org/.rss',
'https://www.redhat.com/en/rss/blog',
'https://www.redhat.com//sysadmin/rss.xml',
'https://www.repair.org/blog?format=rss',
'https://www.rosehosting.com/blog/feed/',
'https://www.ruby-lang.org/en/feeds/news.rss',
'https://www.schneier.com/feed/',
'https://www.scummvm.org/feeds/rss/',
'https://www.softwarefreedom.org/feeds/blog/',
'https://www.softwarefreedom.org/feeds/news/',
'https://www.suse.com/communities/blog/feed',
'https://www.techdrivein.com/feeds/posts/default?alt=rss',
'https://www.techrepublic.com/rssfeeds/topic/open-source/',
'https://www.tecmint.com/feed/',
'https://www.telesurenglish.net/rss/analysis.xml',
'https://www.tfir.io/rss',
'https://www.theatlantic.com/feed/all/',
'https://www.the-diy-life.com/rss',
'https://www.thegeekstuff.com/feed',
'https://www.ubuntupit.com/feed/',
'https://www.unifiedpatents.com/insights?format=rss',
'https://www.unixmen.com/feed',
'https://www.wine-reviews.net/feeds/posts/default?alt=rss',
'https://www.xda-developers.com/tag/linux/feed/',
'https://www.youtube.com/feeds/videos.xml?channel_id=UC3jSNmKWYA04R47fDcc1ImA',
'https://www.youtube.com/feeds/videos.xml?channel_id=UC5UAwBUum7CPN5buc-_N1Fw',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCBsltZiJ0ACdbizilpCqscA',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCd4XwUn2Lure2NHHjukoCwA',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCEU9D6KIShdLeTRyH3IdSvw',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCg6gPGh8HU2U01vaFCAsvmQ',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCld68syR8Wi-GY_n4CaoJGA',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCS25Y-2DUke9uOU5OtLwwgg',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCTfabOKD7Yty6sDF4POBVqA',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCv1Kcz-CuGM6mxzL3B1_Eiw',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCvA_wgsX6eFAOXI8Rbg_WiQ',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg',
'https://www.youtube.com/feeds/videos.xml?channel_id=UCvVE91c-TvmGJj4RW_Ep5JA',
'https://www.youtube.com/feeds/videos.xml?user=Jakejw93',
'https://www.youtube.com/feeds/videos.xml?user=JtheLinuxguy',
'https://www.youtube.com/feeds/videos.xml?user=TheRibalinux',
'https://xenproject.org/feed/',
'https://xfce.org/feed?lang=en',
'https://xkcd.com/atom.xml',
'http://techrights.org/wiki//index.php?title=Special:RecentChanges&feed=atom',
'http://thatlinuxthing.blogspot.com/feeds/posts/default',
'http://thettablog.blogspot.com/feeds/posts/default?alt=rss',
'http://tipsonubuntu.com/feed/',
'http://tirania.org/blog/miguel.rss2',
'http://ubuntuhak.blogspot.com/feeds/posts/default',
'http://ubuntuhandbook.org/index.php/feed',
'http://ubuntu-news.org/feed/',
'http://ubuntunext.com/feed',
'http://ubuntupodcast.org/feed',
'http://ubuntupodcast.org/feed/podcast/',
'http://ultimateedition.info/feed/',
'http://www.2daygeek.com/feed',
'http://www.bristowsupc.com/feed.ashx?id=2955624a-9860-4f57-acdf-2c3deb5b514a',
'http://www.consortiuminfo.org/feed.php',
'http://www.cyberciti.biz/feed/',
'http://www.datamation.com/rss.xml',
'http://www.debugpoint.com/feed/rss/',
'http://www.dedoimedo.com/rss_feed.xml',
'http://www.drydeadfish.co.uk/feed/',
'http://www.elinuxbook.com/feed',
'http://www.enterprisersproject.com/rss',
'http://www.epo.org/rss/news.xml',
'http://www.ericmhuffman.com/feeds/posts/default?alt=rss',
'http://www.fosspatents.com/feeds/posts/default',
'http://www.fsf.org/news/RSS',
'http://www.goodbyemicrosoft.net/e107_plugins/rss_menu/rss.php?news.2',
'http://www.hecticgeek.com/feed/',
'http://www.ip-watch.org/feed/',
'http://www.jonobacon.org/feed/',
'http://www.kalitutorials.net/feeds/posts/default',
'http://www.kde.org/dotkdeorg.rdf',
'http://www.linuxandubuntu.com/feed/rss',
'http://www.linuxbuzz.com/rss',
'http://www.linux.com/rss/feeds.php',
'http://www.linuxforfreshers.com/feeds/posts/default?alt=rss',
'http://www.linuxinsider.com/perl/syndication/rssfull.pl',
'http://www.linux-magazine.com/rss/feed/lmi_full',
'http://www.linuxquestions.org/syndicate/lqnews.rss',
'http://www.linuxtechi.com/feed',
'http://www.linuxtechi.com/feed/',
'http://www.linuxvoice.com/podcast_ogg.rss',
'http://www.makululinux.com/wp/feed/',
'http://www.managingip.com/RSS.aspx?FeedID=2859',
'http://www.montanalinux.org/rss.xml',
'http://www.ocsmag.com/feed/',
'http://www.opensource.org/blog/feed',
'http://www.patentprogress.org/feed/',
'http://www.phoronix.com/rss.php',
'http://www.prwatch.org/node/feed',
'http://www.softwarefreedom.org/feeds/blog/',
'http://www.stephankinsella.com/feed/kinsella-on-liberty/',
'http://www.trinitydesktop.org/rss.php',
'http://www.ubuntubuzz.com/feeds/posts/default',
'http://www.ubuntugeek.com/feed/',
'http://www.webupd8.org/feeds/posts/default',
'http://www.zdnet.com/topic/linux/rss.xml',
'http://www.zenwalk.org/feeds/posts/default?alt=rss',
'http://xmodulo.com/feed',
'http://xubuntu.org/blog/feed',
]
print (" Starting โ ", end = '')
print(datetime.now())
for feed in feedlist:
try:
feed = feedparser.parse(feed)
except:
print('skipping')
try:
print (" โโโโโโโ โโโโโโโ โโโโโโโ โ ", end = '')
print(feed.href)
except:
print('no title')
# print(feed.entries[0].keys())
for entry in feed.entries:
if 'title' in entry:
title = entry.title
else:
title = feed.feed.title
if 'description' in entry:
content = entry.description
else:
# content = feed.feed.description
content = 'null'
if 'link' in entry:
link = entry.link
else:
link = feed.feed.link
if 'published' in entry:
published = entry.published
else:
# published = feed.feed.published
published = 'null'
# adatetime=dp.parse(published)
# print(adatetime)
# convertedtime = time.strftime ("%s",adatetime)
# print(convertedtime)
# t = time.strptime(print(adatetime),"%Y-%B-%D %H:%M:%S%z")
try:
current = time.strftime ("%s",time.localtime())
present = datetime.now()
try:
t = time.strptime(published,"%a, %d %b %Y %H:%M:%S %z")
except:
t = time.strptime(published,"%a, %d %b %Y %H:%M:%S %Z")
sevendays = 86400*2
if int(current) - time.mktime(t) < sevendays:
# print("less than 7 days")
# print(present
# print(t)
# print(current)
print('')
print('โโโโโ ', end = '')
print(feed.href, end = '')
print(' โโโโโโโโโโโโโโโโโโโโโโ ', end = '')
print(published, end = '')
print(' โโโโโโโ ', end = '')
print(title)
print('')
print(title, end = '')
print (" โ ", end = '')
print(link)
print ("<li><h5><a href=\"", end = '')
print(link, end = '')
print ("\">", end = '')
print(title, end = '')
print ("</a></h5><blockquote>", end = '')
print(content)
print ("</blockquote></li>", end = '')
print (" ")
print (" ")
print (" ")
except:
# print("Cannot process feed")
print('')
Desktop-Utils/mp4-to-gif.sh
VIDEO_FILE='ipfs-lights-sbc'
echo Processing $VIDEO_FILE
cd ~
rm ~/intermediate.gif
rm ~/intermediate2.gif
rm $VIDEO_FILE.gif
ffmpeg \
-ss 0 \
-t 10 \
-i $VIDEO_FILE.mp4 \
-vf "select=not(mod(n\,10)),fps=2,scale=480:-1:\
flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
-r 16 -filter:v "setpts=0.1*PTS" \
-loop 0 ~/intermediate.gif
# sleep 2
ffmpeg \
-i ~/intermediate.gif \
-i ~/videos-techrights/mogz-video-poster-4-small.png \
-filter_complex "[1]format=rgba,colorchannelmixer=aa=0.7[logo];\
[0][logo]overlay=0:H-h--1:format=auto" \
-codec:a copy \
~/intermediate2.gif
date=$(date +%d-%m-%Y)
ffmpeg \
-i ~/intermediate2.gif \
-vf "drawtext=fontfile=/home/roy/Main/Misc/Work/Sirius/sirius_site/templates/fonts/DroidSerif-BoldItalic-webfont.ttf:text='$date':x=520:y=446:fontsize=20:fontcolor=black:box=1:boxcolor=white@0.2: boxborderw=5,drawtext=fontfile=/home/roy/Main/Misc/Work/Sirius/sirius_site/templates/fonts/distth_-webfont.ttf:text='$VIDEO_FILE':x=30:y=0+20*t::fontsize=34:fontcolor=white:box=1:boxcolor=black@0.6: boxborderw=5, drawtext=text='timestamp: %{pts \: hms}': x=490: y=30: fontsize=16:fontcolor=yellow@0.9: box=1: boxcolor=black@0.6: boxborderw=5" \
-c:a copy $VIDEO_FILE.gif
Desktop-Utils/view_irc-news.sh
# clear
tail -n 150 irc-status.txt \
| cut -c18-100 \
| GREP_COLOR='01;36' grep --color=always 'techrights-news\|$' \
| grep -i --color=always 'schestowitz\|$' \
| grep -v '<==' \
| sed 's/> / /' \
| grep techrights-news \
| uniq \
| perl -e 'print reverse <>' \
| sed 's/techrights-news/TR/' \
| sed 's/โ NEWS โ/N/'
Desktop-Utils/monitor_irc-news.sh
watch -n 7 --color ./view_irc-news.sh
Desktop-Utils/flatten.sh
grep "date" 09.html | sort -u | sed -e "s/a hre/li><h5><a hre/" -e "s/<\/a>/<\/a><\/h5><\/li>/" >> feedoutline.html
Desktop-Utils/decruft.sh
sed ~/rss-tools/feedlist2.html \
-e 's/?bia_source=rss//' \
-e 's/?utm_source=h2v&utm_medium=rss_feed&utm_campaign=rss//' \
-e 's/?utm_source=h2v&utm_medium=rss_feed&utm_campaign=rss//' \
-e 's/?utm_source=social&utm_medium=feed&utm_campaign=rssfeed//' \
-e 's/?ref=rss&utm_medium=rss&utm_source=rss_feed//' \
-e 's/?utm_source=rss&utm_campaign=rss&utm_medium=links//' \
-e 's/?bia_source=rss//' \
-e 's/?origin=rss//' \
-e 's/#ftag=RSSbaffb68//' \
-e 's/#ref=rss//' \
-e 's/?cmp=rss//' \
-e 's/?utm_source=rss&utm_medium=feed&utm_campaign=rss_feed//' \
-e 's/?maca=en-rss-en-all-1573-xml-atom//' \
-e 's/?src=rss//' \
-e 's/?utm_medium=rss&utm_source=site-feed&utm_campaign=rss//' \
-e 's/?utm_source=feed//' \
-e 's/?icid=rss//' \
>> ~/rss-tools/RSS.html
Desktop-Utils/intro.list
file intro-sketch-new.mp4 file intro-beach-new.mp4 file intro-purple-new.mp4 file techrights-sunrise-new.mp4 file intro-new.mp4 file intro-waves-new.mp4 file intro-swoosh-new.mp4 file intro-night-new.mp4 file skyline-intro-new.mp4 file art-intro-new.mp4 file monitoring-intro-new.mp4 file bridge-intro-new.mp4 file sky-intro-new.mp4 file paper-intro-new.mp4 file road-intro-new.mp4 file seashore-intro-new.mp4 file top-down-intro-new.mp4 file shoes-intro-new.mp4 file sparkle-intro-new.mp4 file running-intro-new.mp4 file computer-intro-new.mp4 file water-intro-new.mp4 file car-intro-new.mp4 file dirty-beach-intro-new.mp4 file bridges-intro-new.mp4 file mills-intro-new.mp4 file router-intro-new.mp4 file walking-intro-new.mp4 file floor-intro-new.mp4 file rocks-intro-new.mp4 file narwal-intro-new.mp4 file newspaper-intro-new.mp4 file red-new.mp4 file horror-new.mp4 file amber-new.mp4 file bench-new.mp4 file people-new.mp4 file letters-new.mp4 file trees-new.mp4 file man-sitting-new.mp4 file indie-new.mp4 file Techrights-new.mp4
Desktop-Utils/clean-irc-logs.sh
# Techrights-specific, free up disk space/clutter by removing stale/old files # Author: Roy Schestowitz # Note: run MANUALLY to check nothing gets lumped in ls irc-log-social-* rm irc-log-social-* ls irc-log-techrights-* rm irc-log-techrights-* ls irc-log-techbytes-* rm irc-log-techbytes-* ls irc-log-0* rm irc-log-0* ls irc-log-1* rm irc-log-1* ls irc-log-2* rm irc-log-2* ls irc-log-3* rm irc-log-3* ls techrights-20* rm techrights-20* ls 2022*.txt rm 2022*.txt
Desktop-Utils/outro.list
file outro-palawan-new.mp4 file outro-new.mp4 file outro-space-new.mp4 file outro-office-new.mp4 file outro-island-new.mp4 file outro-thank-you-new.mp4 file outro-subway-new.mp4 file Techrights-Arrows-new.mp4 file retro-outro-new.mp4 file space-outro-new.mp4 file techno-outro-new.mp4 file clouds-outro-new.mp4 file industrial-outro-new.mp4 file blobs-outro-new.mp4 file leaves-outro-new.mp4 file keyboard-outro-new.mp4 file circle-outro-new.mp4 file terrain-outro-new.mp4 file white-circle-outro-new.mp4 file mechanics-outro-new.mp4 file travel-outro-new.mp4 file forest-outro-new.mp4
Desktop-Utils/search-news.sh
#!/bin/bash # Licence: Public Domain, feel free to share as you see fit # # Author: Roy Schestowitz echo echo echo ====================================== Input string: $1 echo echo STRING=$1 grep -A0 -B0 --ignore-case --no-group-separator -- $STRING /home/roy/rss-tools/outlines.html
Desktop-Utils/process-latest-post.sh
#!/bin/bash
# 2021-11-26
# Old, crude version:
LATESTURL=$(curl -s http://techrights.org/?stories | grep "post-" | cut -d \" -f 2,3 | tr -d post- | cut -d \" -f 1 | head -n 1 )
# LATESTURL=$(curl -s http://techrights.org/?stories \
# | awk '$2~/post-/{
# sub(/^.*post-/,"",$2);
# sub(/".*$/,"",$2);
# print $2;
# exit}')
LATEST="http://techrights.org/?p="$LATESTURL
Old, crude version:
RAW=$(curl -i $LATEST -L | egrep -A 10 '301 Moved Permanently|302 Found' | grep 'Location' | awk -F': ' '{print $2}' | tail -1)
# RAW=$(curl --silent --head "http://techrights.org/?p=$LATEST" \
# | awk '/Location/ { print $2 } ')
# sanitise the input, just in case:
# FINAL=${RAW//[^a-zA-Z0-9]/}
FINAL="${RAW/_/}" && \
FINAL="${FINAL// /_}" && \
FINAL="${FINAL,,}"
# go to correct workspace again, just in case
qdbus org.kde.KWin /KWin setCurrentDesktop 3
# open in the Web browser
falkon $FINAL
echo -n 'Progressing with URL '
echo $FINAL
#echo -n '"' > ~/latest-blog.txt
echo -n $FINAL > ~/latest-blog.txt # keep in file also
# echo -n '"' >> ~/latest-blog.txt
# echo -n $FINAL | xclip
#cat ~/latest-blog.txt | tr -d '\n' | xclip
tail -n 1 ~/latest-blog.txt | tr -d '\r' | xclip
# cat ~/latest-blog.txt | tr -d '\n' | xclip -selection clipboard
# sleep 2
# bash /home/roy/url.sh
URL=$(xclip -o)
GEM=$(echo $URL | sed 's|http://|gemini://gemini.|')
echo '' > ~/clip.html #clear file
TITLE=$(wget -qO- $URL | perl -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si')
echo -n '<li><h5><a href="' >> ~/clip.html \
&& echo -n $URL >> ~/clip.html \
&& echo -n '">' >> ~/clip.html \
&& echo -n $TITLE >> ~/clip.html \
&& echo -n '</a></h5>' >> ~/clip.html
echo '\n--------' >> ~/clip.html
# printf '%(/%Y/%m/%d/)T' >> ~/clip.html
echo -n $TITLE >> ~/clip.html \
&& echo -n ' โ ' >> ~/clip.html \
&& echo -n $URL >> ~/clip.html \
>> ~/clip.html
echo -n ' | โพ Gemini address: ' >> ~/clip.html \
&& echo -n $GEM >> ~/clip.html
tail -n1 ~/clip.html \
| sed -e 's/#tuxmachines/#GNU #Linux #TuxMachines/' \
-e 's/—/ - /' \
-e 's/—/ - /' \
-e 's/—/ - /' \
-e 's/'/โ/' \
-e 's/'/โ/' \
-e 's/–/ - /' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/"/"/' \
-e 's/&/&/' \
-e 's/&/&/' \
-e 's/'/โ/' \
-e 's/’/โ/' \
-e 's/’/โ/' \
-e 's/‘/โ/' \
-e 's/–/ - /' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/—/"/' \
-e 's/&/\&/' \
-e 's/&/\&/'\
-e 's/…/.../'\
| xclip
IRC=$(xclip -o)
#echo $IRC
echo $IRC > ~/Desktop/Text_Workspace/images/ii-1.8/techrights3/irc.techrights.org/#boycottnovell-social/in
echo $IRC > ~/Desktop/Text_Workspace/images/ii-1.8/techrights3/irc.techrights.org/#techrights/in
echo $IRC > ~/Desktop/Text_Workspace/images/ii-1.8/techrights3/irc.techrights.org/#tuxmachines/in
# tests/stale:
#
# echo -n 'Progressing with URL '
# echo $FINAL
# #echo -n '"' > ~/latest-blog.txt
# echo -n $FINAL > ~/latest-blog.txt # keep in file also
# # echo -n '"' >> ~/latest-blog.txt
# # echo -n $FINAL | xclip
# #cat ~/latest-blog.txt | tr -d '\n' | xclip
# echo -n "$(<~/latest-blog.txt)" | tail -n1 | tr -d '\r' | xclip
# # cat ~/latest-blog.txt | tr -d '\n' | xclip -selection clipboard
# # sleep 2
# bash /home/roy/url.sh
Desktop-Utils/search-news-inverted.sh
#!/bin/bash # Licence: Public Domain, feel free to share as you see fit # # Author: Roy Schestowitz # # echo Input string: $1 STRING=$1 grep -A0 -B0 --ignore-case --no-group-separator -v -- $STRING /home/roy/rss-tools/outlines-subset.html
Desktop-Utils/feedlist.sh
python3 ./feedlist.py > feedlist2.html
Desktop-Utils/outlines.sh
date >> outlines.html
cat feedoutline.html | sort -u | uniq | \
sed -e 's/?bia_source=rss//' \
-e 's/?utm_source=h2v&utm_medium=rss_feed&utm_campaign=rss//' \
-e 's/?utm_source=h2v&utm_medium=rss_feed&utm_campaign=rss//' \
-e 's/?utm_source=social&utm_medium=feed&utm_campaign=rssfeed//' \
-e 's/?ref=rss&utm_medium=rss&utm_source=rss_feed//' \
-e 's/?utm_source=rss&utm_campaign=rss&utm_medium=links//' \
-e 's/?bia_source=rss//' \
-e 's/?origin=rss//' \
-e 's/#ftag=RSSbaffb68//' \
-e 's/#ref=rss//' \
-e 's/?cmp=rss//' \
-e 's/?maca=en-rss-en-all-1573-xml-atom//' \
-e 's/?src=rss//' \
-e "s/ //" \
-e 's/?utm_medium=rss&utm_source=site-feed&utm_campaign=rss//' \
-e 's/?utm_source=feed//' \
-e 's/?icid=rss//' \
-e 's#https://www.youtube.com#https://www.yewtu.be#' | \
-e 's#</span>#</span> [Older] #' | \
sed 's/ / /g' | \
grep -v 'https://news.google.com' | \
grep -v 'https://news.tuxmach' | \
grep -v 'media.libreplanet' | \
grep -v 'rssfeeds.usatoday' | \
grep -v 'www.sydsvenska' | \
grep -v 'www.svd.se' | \
grep -v 'oshogbo.vexillium' | \
grep -v 'nrk.no' | \
grep -v 'polarhive.ml' | \
grep -v 'libreboot.org' | \
grep -v 'sirupsen.com' | \
grep -v 'www.hd.se' | \
grep -v 'www.digi.no' \
>> outlines.html
Desktop-Utils/url.sh
# !/bin/bash
# mouse-attached function to help with Daily Links
# Public Domain, Roy Schestowitz
URL=$(xclip -o)
# alternatives and tests below
# URL=$(cat ~/latest-blog.txt | tr -d '\n' )
# URL=$(sed 1!d ~/latest-blog.txt)
# URL=$(printf "%s" $(sed 1!d ~/latest-blog.txt))
# URL=$(echo -n "http://techrights.org/2021/11/26/whonix-16-0-3-7/
# " )
# process URLs/aliases
#gemini URL
GEM=$(echo $URL | sed 's|http://|gemini://gemini.|')
# youtube
VIDEO=$(echo $URL | sed 's|https://www\.youtube\.com|https://yewtu.be|')
URL=$(echo $VIDEO | sed 's|https://youtube\.com|https://yewtu.be|')
# youtube shortcut
VIDEO=$(echo $URL | sed 's|https://www\.youtu\.be|https://yewtu.be|')
URL=$(echo $VIDEO | sed 's|https://youtu\.be|https://yewtu.be|')
# twitter
TWEET=$(echo $URL | sed 's|https://www\.twitter\.com|https://nitter.eu|')
URL=$(echo $TWEET | sed 's|https://twitter\.com|https://nitter.eu|')
echo '' > ~/clip.html #clear file
# debugging:
# echo $URL
# wget $URL
TITLE=$(wget -qO- $URL | \
perl -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si' | \
sed -e 's/–/-/' -e 's/̵/-/' -e 's/'/โ/' -e 's/·/-/' -e 's/»/-/' -e 's/"/"/' -e 's/&/-/' -e "s/“/'/" -e "s/–/-/" -e "s/”/'/" -e "s/'/'/" -e 's/«/-/' -e 's/-/-/' -e "s/’/'/" -e "s/‘/'/" -e "s/'/'/")
DOMAIN=$(echo -n "$URL" | \
sed -e 's|[^/]*//\([^@]*@\)\?\([^:/]*\).*|\2|' \
-e 's/www.//' \
-e 's/blogs.//' \
-e 's/blog.//' \
| awk -F. '{print $1}')
echo -n '<li><h5><a href="' >> ~/clip.html \
&& echo -n $URL >> ~/clip.html \
&& echo -n '">' >> ~/clip.html \
&& echo -n $TITLE >> ~/clip.html \
&& echo '</a></h5>' >> ~/clip.html
echo '\n--------' >> ~/clip.html
# printf '%(/%Y/%m/%d/)T' >> ~/clip.html
SITENAME=$(grep $DOMAIN ~/lib/Links/CamelCase.pm | cut -d\" -f4 | tail -n 1)
if [ "$DOMAIN" = "yewtu" ];
then
echo -n '' >> ~/clip.html
else
echo -n $TITLE >> ~/clip.html \
&& echo -n ' โ ' >> ~/clip.html \
&& echo -n $URL >> ~/clip.html \
&& echo -n ' ไท Source: ' >> ~/clip.html \
&& echo -n $SITENAME >> ~/clip.html \
&& echo -n " | โพ Gemini address: gemini://gemi.dev/cgi-bin/waffle.cgi/view?" >> ~/clip.html \
&& echo -n "${URL/:/"%3A"}" >> ~/clip.html
fi
if [ "$DOMAIN" = "techrights" ];
then
echo -n ' | โพ Gemini address: ' >> ~/clip.html \
&& echo -n $GEM >> ~/clip.html
else
# echo -n ' | more in http://schestowitz.com' >> ~/clip.html \
# && echo -n $(date +"/%Y/%m/%d/") >> ~/clip.html \
# && echo -n '#latest' >> ~/clip.html
echo -n '' >> ~/clip.html
fi
if [ "$DOMAIN" = "yewtu" ];
then
echo -n $TITLE >> ~/clip.html \
&& echo -n ' โ ' >> ~/clip.html \
&& echo -n $URL >> ~/clip.html \
&& echo -n ' | โพ Gemini address: ' >> ~/clip.html \
&& echo -n 'gemini://auragem.space/youtube/video/' >> ~/clip.html \
&& echo -n ${URL#*=} >> ~/clip.html
else
echo -n '' >> ~/clip.html
fi
# echo '\n--------' >> ~/clip.html
head -n2 ~/clip.html | xclip -selection clipboard
tail -n1 ~/clip.html \
| sed -e 's/#tuxmachines/#GNU | Linux | TuxMachines/' \
-e 's/ phoronix/ Phoronix | Kernel | Linux ๐ง/' \
-e 's/ fsf / FSF | GNU | FreeSW | Software Freedom /' \
-e 's/ gamingonlinux/ Gaming On Linux | GNU | Linux | Games/' \
-e 's/ gnu/ FSF | GNU | FreeSW | SoftwareFreedom/' \
-e 's/ cnx-software/ Linux | GNU | Hardware | cnxsoftware/' \
-e 's/ linuxlinks/ LinuxLinks | GNU | Linux | FreeSW /' \
-e 's/ linuxhint/ LinuxHint | GNU | Linux | FreeSW ๐ง/' \
-e 's/ documentfoundation/ Documentfoundation | OpenDocument | freesw | libreoffice | odf/' \
-e 's/ techrights/ Techrights | GNU | Linux | FreeSW/' \
-e 's/ itsfoss/ ItsFOSS | GNU | Linux | Freesw/' \
-e 's/ gnome/ GNOME | GNU | Linux | GTK/' \
-e 's/ redhat/ Red Hat | ICBM | GNU | Linux/' \
-e 's/ lwn/ LWN | Kernel | Linux/' \
-e 's/LWN.net/LWN/' \
-e 's/The IPKat/ IPKat/' \
-e 's/โข The Register/- El Reg/' \
-e 's/ FOSS Patents: / Florian Mรผller: /' \
-e 's/ fedora/ Fedora | RedHat | IBM | GNU | Linux/'\
-e 's/ opensource/ FreeSW | RedHat | IBM | GNU | Linux/'\
-e 's/ omgubuntu/ OMGUbuntu | GNU | Linux/' \
-e 's/ youtube/ Video | Google | YouTube/' \
-e 's/ debian/ Debian | GNU | Linux | FreeSW ๐ง/' \
-e 's/ how to/#HowTo/' \
-e 's/ How To/#HowTo/' \
-e 's/ arduino/ Arduino | Hardware | OpenHardware | Hacking/' \
-e 's/ linuxjournal/ LinuxJournal | GNU | Linux/' \
-e 's/ linuxreviews/ LinuxReviews | GNU | Linux/' \
-e 's/ ubuntupit/ UbuntuPIT | GNU | Linux/' \
-e 's/ linuxconfig/ LinuxConfig | GNU | Linux/' \
-e 's/ ubuntuhandbook/ UbuntuHandbook | FreeSW | GNU | Linux/' \
-e 's/ linux-magazine/ LinuxMagazine | FreeSW | GNU | Linux/' \
-e 's/ tecmint/ TecMint FreeSW | GNU | Linux/' \
-e 's/ howtoforge/ HowToForge | GNU | Linux/' \
-e 's/ ostechnix/ OSTechNix | GNU | Linux | FreeSW /' \
-e 's/ linuxhandbook/ LinuxHandbook | GNU | Linux/' \
-e 's/ debugpoint/ DebugPoint | GNU | Linux/' \
-e 's/ tuxdigital/ TuxDigital | GNU | Linux/' \
-e 's/ itsubuntu/ ItsUbuntu | GNU | Linux/' \
-e 's/ linuxgizmos/ LinuxGizmos | Hardware | Devices | GNU | Linux/' \
-e 's/ linuxuprising/ LinuxUprising | FreeSW | GNU | Linux/' \
-e 's/ ubuntubuzz/ UbuntuBuzz | GNU | Linux/' \
-e 's/ linuxsmartphones/ | LinuxSmartphones | Mobile | GNU | Linux/' \
-e 's/—/ - /' \
-e 's/—/ - /' \
-e 's/—/ - /' \
-e 's/ fossbytes/ #FossBytes | GNU | Linux/' \
-e 's/ mozilla/ Mozilla | WWW | FreeSW | Firefox | Internet/' \
-e 's/How to/How to/' \
-e 's/ yewtu/ Video | Invidious | Multimedia /' \
-e 's/'/โ/' \
-e 's/'/โ/' \
-e 's/–/ - /' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/"/"/' \
-e 's/&/&/' \
-e 's/&/&/' \
-e 's/todayโs howtos/Todayโs HowTos | UNIX /' \
-e 's/Opensource.com//' \
-e 's/todayโs leftovers/Todayโs ๏ผด๏ฝ๏ฝ ๏ผญ๏ฝ๏ฝ๏ฝ๏ฝ๏ฝ๏ฝ
๏ฝ Leftovers/' \
-e 's/Android Leftovers/Google Android Leftovers/' \
-e 's/Today in Techrights/Today in #Techrights/' \
-e 's/'/โ/' \
-e 's/’/โ/' \
-e 's/’/โ/' \
-e 's/‘/โ/' \
-e 's/–/ - /' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/—/"/' \
-e 's/&/\&/' \
-e 's/&/\&/'\
-e 's/…/.../'\
-e 's/Programming Leftovers/Programming Leftovers/'\
-e 's/IRC Proceedings/๐๐ฆ๐ค๐ฉ๐ณ๐ช๐จ๐ฉ๐ต๐ด IRC Proceedings/'\
-e 's/| Tux Machines /โข ๏ผด๏ฝ๏ฝ ๏ผญ๏ฝ๏ฝ๏ฝ๏ฝ๏ฝ๏ฝ
๏ฝ /'\
-e 's/| Techrights /โข Techrights /' \
| xclip
notify-send --app-name=konversation -t 3500 -u low $DOMAIN
SUMMARY=$(wget -O- -q $URL | xmllint --html --xpath 'string(/html/head/meta[@name="description"]/@content)' - 2>/dev/null)
# mousepad ~/clip.html
if [ -z "$SUMMARY" ];
then
notify-send --app-name=konversation -t 5500 \
-u low 'โขโโข โขโโข โขโโข โขโโข โ EMPTY SUMMARY!!!'
else
sleep 5
notify-send --app-name=konversation -t 5500 \
-u low 'SUMMARY READY!!! โโโ'
echo -n $SUMMARY | xclip -selection clipboard
fi
# now we make a template for TuxMachines, just in case it comes in handy
# start with clean file:
echo $TITLE | sed \
-e 's/—/ - /' \
-e 's/—/ - /' \
-e 's/—/ - /' \
-e 's/'/โ/' \
-e 's/'/โ/' \
-e 's/–/ - /' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/"/"/' \
-e 's/&/&/' \
-e 's/&/&/' \
-e 's/'/โ/' \
-e 's/’/โ/' \
-e 's/’/โ/' \
-e 's/‘/โ/' \
-e 's/–/ - /' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/—/"/' \
-e 's/&/\&/' \
-e 's/&/\&/'\
-e 's/…/.../'\
> ~/tux-text.txt
# append the rest as follows:
echo "" >> ~/tux-text.txt
# echo '<p><img src="/Features/" class="feature" align="left" ' \
# >> ~/tux-text.txt
# echo 'width="" height="" alt="" /> ' \
# >> ~/tux-text.txt
echo "" >> ~/tux-text.txt
echo '<p class="dropcap-first">' >> ~/tux-text.txt
echo "" >> ~/tux-text.txt
echo -n '<a class="readon"' >> ~/tux-text.txt
echo -n ' title="' >> ~/tux-text.txt
echo -n $SITENAME >> ~/tux-text.txt
echo -n '" href="' >> ~/tux-text.txt
echo -n $URL >> ~/tux-text.txt
echo -n '">Read on</a>' >> ~/tux-text.txt
cat ~/tux-text.txt | xclip
Desktop-Utils/daily-links.sh
# !/bin/bash
# Keep up to date with Git repos (TuxMachines, Techrights)
# and Links
#
# Public Domain, Roy Schestowitz
# ssh-agent bash
# ssh-add /home/roy/.ssh/tr-links
# Run real-time notifier, before even pulling anything
killall mosquitto_sub
~/Desktop/Text_Workspace/images/roy-monitor-git-with-mqtt/roy-monitor-git-with-mqtt/monitor-git.sh | grep -v 'updated' >> ~/remote-status.txt &
# Also go in a loop, showing status
while :
do
echo -n " โ Links: " >> ~/remote-status.txt
# Deprecated parsing:
# ssh links@ipfs.techrights.org "ls -la Links/m2022-09" | tail -n 1 | cut -b30-79 | cut -f5 -d" " | cut -f3-5 -d"-" >> ~/remote-status.txt
# ssh links@ipfs.techrights.org "ls -la Links/m2022-09" | tail -n 1 | cut -b10-79 | cut -f15 -d" " >> ~/remote-status.txt
ssh links@ipfs.techrights.org "ls -la Links/m2022-09/other*" | tail -n 1 | cut -f3 -d"/" >> ~/remote-status.txt
sleep 300 # pause specified for polling
# Deprecated approach:
# ssh git@git-tr "git-upload-pack '/home/git/tr-git'"
cd ~/Git # to be sure correct directory
echo -n "Git TR: " >> ~/remote-status.txt
git pull --log -n --stat | grep -v "Already up to date." >> ~/remote-status.txt
git log -1 --format="%at" | xargs -I{} date -d @{} +"%F %H:%M" | sed -z "s/\n//g" >> ~/remote-status.txt
cd ~/Git-TM/tuxmachines.org/tuxmachines.org # to be sure again again
echo -n " โ Git TM: " >> ~/remote-status.txt
git pull --log -n --stat | grep -v "Already up to date." >> ~/remote-status.txt
git log -1 --format="%at" | xargs -I{} date -d @{} +"%F %H:%M" | sed -z "s/\n//g" >> ~/remote-status.txt
done
Desktop-Utils/post-ff.sh
# !/bin/bash
# Post-FF: Used to be Firefox, now used with Konqueror
# (named this way for legacy reasons) though can be adapted for
# any Web browser
#
# Summary: Post to social control media.
# Licence: Public Domain, 2018-2021.
#
# Note: Very much if not most of the below code (scripts/bash)
# is commented out and deprecated due to changes in sites.
# Preserved for legacy purposes or examples to be potentially reused.
#
# Why it's shared: The automation is limited to making local copies,
# relaying to IRC, and posting in legitimate sites. It's all done
# manually, but the distribution to several sources is better off
# streamlined. Others might find it useful.
#
# Some file paths may be specific to the sole (known) user of the
# program, which is attached to a mouse button using xbindkeys.
# The screen layout assumed is two 1080px monitors, one on top of
# the other.
# There is room for refactoring in the future, but that depends
# on how many people actually use such programs
# ===============================================================
# Old Pleroma:
#
# sleep 4
# # # sleep 2
# xdotool search "plerom" windowactivate --sync key -delay 250 ctrl+l
# # sleep 2
# xdotool search "plerom" windowactivate --sync key
# xdotool search "plerom" windowactivate --sync key Tab
# # sleep 2
# xdotool search "plerom" windowactivate --sync key Tab
# xdotool search "plerom" windowactivate --sync key Tab
# xdotool search "plerom" windowactivate --sync key Tab
# # sleep 2
# xdotool search "plerom" windowactivate --sync key Tab
# xdotool search "plerom" windowactivate --sync key Tab
# xdotool search "plerom" windowactivate --sync key Tab
# # sleep 2
# xdotool search "plerom" windowactivate --sync key -delay 250
# xdotool search "plerom" windowactivate --sync key Tab
# xdotool search "plerom" windowactivate --sync key Tab
# xdotool search "plerom" windowactivate --sync key Tab
#
# search "plerom" windowactivate --sync key -delay 250
# xdotool search "plerom" windowactivate --sync key -delay 250
# # # sleep 2
# # # sleep 1
# xdotool search "Join" windowactivate --sync key tech
# # # sleep 2
# xdotool search "Join" windowactivate --sync key
#
# xdotool search "Join" windowactivate --sync key ctrl+v
# ===============================================================
xd=18
qdbus org.kde.KWin /KWin setCurrentDesktop 1 # go to correct workspace, just in case
xdotool getmouselocation --shell
eval $(xdotool getmouselocation --shell)
# echo $X $Y
# Uncomment the above to debug
xinput disable ${xd}
# Turn off external mouse or mousing to avoid conflict
tmp=$(mktemp --suffix "-post") || exit 1
awk -F',' '{printf("%s\t%d\n",$1,$2+1)}' ~/file1.txt \
> ${tmp} && cp ${tmp} ~/file1.txt
rm ${tmp}
export number=$(wc -w < ~/file1.txt)
export remainder=$(( number % 10 ))
export remainderbig=$(( number % 3 ))
# Dirty hacks to keep running tallies
#
# if ((remainder))
# then
# echo ''
# else
#
# # sleep 1.0
# # xdotool mousemove 1800 0
# # xdotool click 1
# xdotool mousemove 1800 5
# xdotool click 1
# xdotool key --delay 1 F5
#
# if ((remainderbig))
# then
# # xdotool mousemove 0 1070
# # xdotool click 1
# xdotool mousemove 10 1070
# xdotool click 1
# xdotool key --delay 1 F5
#
# xdotool mousemove 1800 1000
# xdotool click 1
# # xdotool key --delay 1 F5
# sleep 3.0
# fi
#
# sleep 3.0
#
# xdotool mousemove 1800 0
# xdotool click 1
# xdotool mousemove 1800 50
# xdotool click 1
# xdotool mousemove 1721 123
# xdotool click 1
# xdotool mousemove 1747 123
# xdotool click 1
#
# # sleep 1.0
# fi
# ===============================================================
# Do MINDS site:
#
# xdotool mousemove 200 1050
# xdotool click 1
# sleep 1.4
# xdotool mousemove 100 970
# xdotool click 1
# sleep 1
# xdotool key --delay 400 ctrl+v
# sleep 2.4
# OLD SECTION for pause for card:
#xinput disable ${xd}
#xdotool mousemove 0 1070
# xdotool click 1
# sleep 0.4
# sleep 1
# xinput disable ${xd}
# xdotool mousemove 175 1070
# xdotool key --delay 500 Tab
# xdotool click 1
# xdotool mousemove 180 1030
# xdotool click 1
# xdotool mousemove 165 880
# xdotool click 1
# ===============================================================
# Save to personal site, used to be for Pleroma/Fediverse
xinput disable ${xd}
xdotool mousemove 1910 1050
# sleep 0.4
# xdotool mousemove 1910 1050
# sleep 0.4
# xdotool mousemove 1910 1050
xdotool click --delay 200 1
# xdotool mousemove 1910 1050
# sleep 0.4
# xdotool mousemove 1910 1050
# sleep 1.4
# xdotool mousemove 1810 1050
# xdotool click 1
# xdotool click 1
xdotool key --delay 0 ctrl+v
# xdotool click 2
# sleep 0.4
xdotool type " </li></ul><p align="right"><em><b>posted</b> <u>$(date '+%A, %B %d, %Y at %T')</u></em></p><hr size='5' /><ul><li>"
# xdotool key --delay 0 type " "
# xdotool key --delay 0 Tab Tab Tab KP_Enter Tab KP_Enter Tab KP_Enter #old style
# xdotool type "<hr size='5' /><ul><li>"
# xdotool key --delay 0 KP_Enter Tab KP_Enter Tab KP_Enter Tab KP_Enter Tab KP_Enter
xdotool key --delay 0 KP_Enter KP_Enter KP_Enter
if ((remainder))
then
echo ''
else
xdotool key --delay 0 ctrl+s
fi
xinput disable ${xd}
# ===============================================================
# POST IN DIASPORA:
# xdotool mousemove 1800 100
# sleep 0.4
#
# xdotool click 1
# xdotool mousemove 1800 0
# xdotool click 1
# # sleep 0.5
# xdotool mousemove 1800 50
# # sleep 0.4
# xdotool mousemove 1800 50
# xdotool click 1
# xdotool click 1
# xdotool click 1
# xdotool key --delay 1 ctrl+v
# xdotool key --delay 1 Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab KP_Enter
# xdotool click 2
# xdotool key Tab Tab KP_Enter
# xdotool search "Join" windowactivate --sync key --delay 10 Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab KP_Enter
# xdotool search --onlyvisible --class dolphin behave %@ focus key F5
# xdotool mousemove 30 30
# xdotool click 1
# xdotool mousemove 30 30
# # sleep 0.2
# xdotool mousemove 30 30
# xdotool click 1
# # sleep 0.2
# # sleep 0.2
# xdotool mousemove 30 30
# xdotool click 1
# xdotool key --delay 10 ctrl+v
# # xdotool click 2
# xdotool mousemove 30 30
# # sleep 0.4
# xdotool mousemove 30 30
# xdotool key --delay 200 type " "
# xdotool key --delay 200 type " "
#
#
# xinput disable ${xd}
#
#
# xdotool mousemove 30 30
# sleep 0.8
#
# # xdotool key --delay 300 type " "
# # sleep 1.8
#
# xdotool key --delay 100 Tab
# sleep 0.8
# xdotool key --delay 100 Tab KP_Enter
#
# xinput disable ${xd}
# # Click in MINDS to post:
# xdotool mousemove 0 1070
# xdotool click 1
#
# xdotool mousemove 180 1030
# xdotool click 1
xinput disable ${xd} # suppress autodetect mouse
if [ $Y -lt 1080 ]
then
IRC=$(xclip -o)
if [ $X -lt 900 ]
then
echo $IRC > ~/ii/techrights3/irc.techrights.org/#boycottnovell-social/in
if [ $X -lt 300 ]
then
echo $IRC > ~/ii/techrights3/irc.techrights.org/#techpol/in
fi
else
echo $IRC > ~/ii/techrights3/irc.techrights.org/#boycottnovell-social/in
echo $IRC > ~/ii/techrights3/irc.techrights.org/#techrights/in
fi
xdotool mousemove 700 1000
xdotool click 1
xdotool mousemove 700 1000
xdotool key --delay 5 ctrl+f ctrl+v Escape ctrl+x ctrl+s Shift+Down Shift+Down Shift+Down Shift+Down Shift+Down Shift+Down Shift+Down ctrl+x F8
xdotool mousemove 700 1700
xdotool mousemove 700 1700
xdotool key --delay 150 ctrl+v ctrl+s
# xdotool click 1 && xdotool click 1 && xdotool click 1 && xdotool key Shift+Page_Down
xdotool mousemove 700 1000
xdotool click 1
# # xdotool search --onlyvisible "no-fold: Links" windowactivate --sync key
# #
# # xdotool search "JoinDiaspora* โ" windowactivate --sync key
# # xdotool search "index.htm" windowactivate --sync key
xdotool mousemove 400 370
# xdotool click 1
# xdotool key --delay 1 ctrl+s
else
IRC=$(xclip -o)
if [ $Y -lt 1950 ]
then
echo $IRC > ~/ii/techrights3/irc.techrights.org/#techrights/in
echo $IRC > ~/ii/techrights3/irc.techrights.org/#boycottnovell-social/in
else
echo $IRC > ~/ii/techrights3/irc.techrights.org/#boycottnovell-social/in
echo $IRC > ~/ii/techrights3/irc.techrights.org/#techrights/in
echo $IRC > ~/ii/techrights3/irc.techrights.org/#tuxmachines/in
fi
# xdotool mousemove 700 1000
# xdotool click 1
# xdotool search "JoinDiaspora* โ" windowactivate --sync key
# xdotool search "index.htm" windowactivate --sync key
# xdotool search --onlyvisible "no-fold: nnn" windowactivate --sync key
# xdotool mousemove 200 1370
if [ $Y -lt 1950 ]
then
xdotool mousemove 200 1370
sleep 0.1
xdotool key --delay 1 ctrl+x
xdotool key --delay 1 ctrl+s
xdotool mousemove 900 1570
else
xdotool mousemove 200 1970
fi
if [ $Y -lt 1080 ]
then
xdotool mousemove 400 370
else
xdotool mousemove 900 1570
fi
if [ $Y -lt 1950 ]
then
xdotool mousemove 900 1570
else
xdotool mousemove 200 2080
xdotool click 1
xdotool key --delay 1 ctrl+KP_Enter
fi
fi
xinput enable 18 # now it's safe to turn back on
#
#
# # Display some system-wide notifications
# sleep 0.02
#
# if [ $remainder -lt 5 ]
# then
# echo ''
# else
# n=$((5 * $remainder - 18 )) # This the number of characters we want to produce
#
# variable=$(printf "%0.sโ" $(seq 1 $n)) # Fill $variable with $n periods
# stage=$(echo -n $remainder && echo -n " - ")
# echo -n $stage $variable | ./notify-pipe
# fi
# Ensure IRC logs OK
sleep 1.5
tail -n1 /home/roy/.xchat2/xchatlogs/FreeNode-#boycottnovell-social.log | cut -c35-140 2>&1 | ./notify-pipe
# Reread shortcuts (stale) in case 'xinput disable' annulled settings:
# xmodmap -e "keycode 152 = XF86AudioPrev" &
# xmodmap -e "keycode 163 = XF86AudioNext" &
# Old approach below (deprecated)
# xdotool mousemove 0 1070
# xdotool click 1
# xdotool search "Join" windowactivate --sync key --delay 200 ctrl+l Tab Tab ctrl+v Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab KP_Enter
#
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
#
# # sleep 2
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# # # sleep 2
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
#
# # # sleep 2
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
#
# # # sleep 2
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# # # sleep 2
#
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
#
# # # sleep 2
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# xdotool search "Join" windowactivate --sync key Tab
# # sleep 2
# xdotool search "Join" windowactivate --sync key
# xdotool search "plerom" windowactivate --sync key --delay 200 ctrl+l Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab ctrl+v Tab Tab Tab KP_Enter
Desktop-Utils/tuxurl-new.sh
# !/bin/bash
# mouse-attached function to help with Tux Machines
# Public Domain, Roy Schestowitz
while :
do
# echo ''
# echo ''
cp ~/newtuxurl.txt ~/newtuxurl-old.txt
curl --insecure --silent "http://news.tuxmachines.org/feed.xml" \
| grep -E '<link' \
| sed -e 's/<link>//' \
-e 's|</link>||' \
-e 's/ <link rel\="alternate" href\="//' \
-e 's|" type\=\"text/html"/>|" />|' \
| head -n40 \
| tail -n39 > ~/newtuxurl.txt
cat ~/newtuxurl.txt ~/newtuxurl-old.txt ~/newtuxurl-old.txt \
| sort \
| uniq -u > ~/newtuxdiff.txt #list of diffs
# cat ~/tuxdiff.txt ~/tuxurl-old.txt | sort -r | uniq -u > ~/tuxdiff2.txt #list of old diffs
# cat ~/tuxurl.txt ~/tuxdiff2.txt | sort -r | uniq -u > ~/tuxdiff3.txt
while read p; do
echo ''
cat ~/newtuxtime.txt
notify-send \
--app-name=konversation \
-t 3500 \
-u low 'New TUX MACHINES UPDATES READY!!!!!'
URL=$(echo $p | sed 's|https://news.|http://news.|')
#gemini URL
PROTOCOL=$(echo $URL | sed 's|http://news.|gemini://gemini.|')
GEM=$(echo $PROTOCOL | sed 's|.shtml|.gmi|')
echo '' > ~/clip.html #clear file
TITLE=$(wget --no-check-certificate -qO- $URL \
| perl -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si')
DOMAIN=$(echo -n "$URL" \
| sed -e 's/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/' \
-e 's/www.//' \
-e 's/blogs.//' \
-e 's/blog.//' \
| awk -F. '{print $1}')
# echo -n '<li><h5><a href="' >> ~/clip.html && echo -n $URL >> ~/clip.html && echo -n '">' >> ~/clip.html && echo -n $TITLE >> ~/clip.html && echo -n '</a></h5>' >> ~/clip.html
echo '\n--------' >> ~/clip.html
# printf '%(/%Y/%m/%d/)T' >> ~/clip.html
# && echo '---------------------' >> ~/clip.html \
echo -n $TITLE >> ~/clip.html \
&& echo -n ' โจ ' >> ~/clip.html \
&& echo -n $URL >> ~/clip.html \
&& echo -n ' | โพ Gemini address: ' >> ~/clip.html \
&& echo -n $GEM >> ~/clip.html \
&& echo -n " โ" >> ~/clip.html
# && echo -n ' #' >> ~/clip.html \
# && echo -n $DOMAIN >> ~/clip.html
# && gemini://gemi.dev/cgi-bin/waffle.cgi/view?" >> ~/clip.html \
# && echo -n "${URL/:/"%3A"}" >> ~/clip.html
# echo '\n--------' >> ~/clip.html
# head -n2 ~/clip.html
tail -n1 ~/clip.html \
| sed -e 's/#tuxmachines//' \
-e 's/#phoronix/#Phoronix #Kernel #Linux ๐ง/' \
-e 's/#fsf /#FSF #GNU #FreeSW #SoftwareFreedom /' \
-e 's/#gamingonlinux/#GamingOnLinux #GNU #Linux #Games #Gaming ๐ง/' \
-e 's/#gnu/#FSF #GNU #FreeSW #SoftwareFreedom/' \
-e 's/#cnx-software/#Linux #GNU #Hardware #cnxsoftware/' \
-e 's/#linuxlinks/#LinuxLinks #GNU #Linux/' \
-e 's/#linuxhint/#LinuxHint #GNU #Linux ๐ง/' \
-e 's/#documentfoundation/#documentfoundation #opendocument #freesw #libreoffice #odf/' \
-e 's/#techrights/#Techrights #GNU #Linux #FreeSW/' \
-e 's/#itsfoss/#ItsFOSS #GNU #Linux #Freesw/' \
-e 's/#gnome/#GNOME #GNU #Linux #GTK/' \
-e 's/#redhat/#RedHat #IBM #GNU #Linux/' \
-e 's/#lwn/#LWN #GNU #Linux/' \
-e 's/#fedora/#Fedora #RedHat #IBM #GNU #Linux/' \
-e 's/#opensource/#FreeSW #RedHat #IBM #GNU #Linux/' \
-e 's/#omgubuntu/#OMGUbuntu #GNU #Linux/' \
-e 's/#youtube/#Video #Google #YouTube/' \
-e 's/#debian/#Debian #GNU #Linux #FreeSW ๐ง/' \
-e 's/how to/#HowTo/' \
-e 's/How To/#HowTo/' \
-e 's/#arduino/#Arduino #Hardware #OpenHardware #Hacking/' \
-e 's/#linuxjournal/#LinuxJournal #GNU #Linux/' \
-e 's/#linuxreviews/#LinuxReviews #GNU #Linux/' \
-e 's/#ubuntupit/#UbuntuPIT #GNU #Linux/' \
-e 's/#linuxconfig/#LinuxConfig #GNU #Linux/' \
-e 's/#ubuntuhandbook/#UbuntuHandbook #FreeSW #GNU #Linux/' \
-e 's/#linux-magazine/#LinuxMagazine #FreeSW #GNU #Linux/' \
-e 's/#tecmint/#TecMint #FreeSW #GNU #Linux/' \
-e 's/#howtoforge/#HowToForge #GNU #Linux/' \
-e 's/#ostechnix/#OSTechNix #GNU #Linux/' \
-e 's/#linuxhandbook/#LinuxHandbook #GNU #Linux/' \
-e 's/#debugpoint/#DebugPoint #GNU #Linux/' \
-e 's/#tuxdigital/#TuxDigital #GNU #Linux/' \
-e 's/#itsubuntu/#ItsUbuntu #GNU #Linux/' \
-e 's/#linuxgizmos/#LinuxGizmos #Hardware #Devices #GNU #Linux/' \
-e 's/#linuxuprising/#LinuxUprising #FreeSW #GNU #Linux/' \
-e 's/#ubuntubuzz/#UbuntuBuzz #GNU #Linux/' \
-e 's/#linuxsmartphones/#LinuxSmartphones #Mobile #GNU #Linux/' \
-e 's/#fossbytes/#FossBytes #GNU #Linux/' \
-e 's/#mozilla/#Mozilla #WWW #FreeSW #Firefox #Internet/' \
-e 's/How to/#HowTo/' \
-e 's/'/โ/' \
-e 's/'/โ/' \
-e 's/–/ - /' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/'/โ/' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/&/&/' \
-e "s/today's howtos/Today's ๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด HowTos /" \
-e 's/Opensource.com//' \
-e "s/today's leftovers/Today's ๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด Leftovers/" \
-e 's/Android Leftovers/๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด: Google Android Leftovers/' \
-e 's/Today in Techrights/Today in Techrights/' \
-e 's/'/โ/' \
-e 's/’/โ/' \
-e 's/’/โ/' \
-e 's/‘/โ/' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/Tux Machines —/โฒ ๐ฟ๐๐ ๐ธ๐๐๐๐๐๐๐ โจฆ (NEW): /' \
-e 's/—/โ/' \
-e 's/—/โ/' \
-e 's/&/\&/' \
-e 's/&/\&/' \
-e 's/…/.../' \
-e 's/Programming Leftovers/๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด Programming Leftovers/' \
-e 's/IRC Proceedings/IRC Proceedings/' \
-e 's/| Tux Machines /โข Tux Machines /' \
-e 's/| Techrights /โข ััยขะฝัฮน๏ปญะฝัั / '
echo ''
# echo ''
# Deprecated below, for option without hashes
#
# tail -n1 ~/clip.html | sed -e 's/#tuxmachines//' | sed -e 's/#phoronix/#Phoronix #Kernel #Linux ๐ง/' | sed -e 's/#fsf /#FSF #GNU #FreeSW #SoftwareFreedom /' | sed -e 's/#gamingonlinux/#GamingOnLinux #GNU #Linux #Games #Gaming ๐ง/' | sed -e 's/#gnu/#FSF #GNU #FreeSW #SoftwareFreedom/' | sed -e 's/#cnx-software/#Linux #GNU #Hardware #cnxsoftware/' | sed -e 's/#linuxlinks/#LinuxLinks #GNU #Linux/' | sed -e 's/#linuxhint/#LinuxHint #GNU #Linux ๐ง/' | sed -e 's/#documentfoundation/#documentfoundation #opendocument #freesw #libreoffice #odf/' | sed -e 's/#techrights/#Techrights #GNU #Linux #FreeSW/' | sed -e 's/#itsfoss/#ItsFOSS #GNU #Linux #Freesw/' | sed -e 's/#gnome/#GNOME #GNU #Linux #GTK/' | sed -e 's/#redhat/#RedHat #IBM #GNU #Linux/' | sed -e 's/#lwn/#LWN #GNU #Linux/' | sed -e 's/#fedora/#Fedora #RedHat #IBM #GNU #Linux/'| sed -e 's/#opensource/#FreeSW #RedHat #IBM #GNU #Linux/'| sed -e 's/#omgubuntu/#OMGUbuntu #GNU #Linux/' | sed -e 's/#youtube/#Video #Google #YouTube/' | sed -e 's/#debian/#Debian #GNU #Linux #FreeSW ๐ง/' | sed -e 's/how to/#HowTo/' | sed -e 's/How To/#HowTo/' | sed -e 's/#arduino/#Arduino #Hardware #OpenHardware #Hacking/' | sed -e 's/#linuxjournal/#LinuxJournal #GNU #Linux/' | sed -e 's/#linuxreviews/#LinuxReviews #GNU #Linux/' | sed -e 's/#ubuntupit/#UbuntuPIT #GNU #Linux/' | sed -e 's/#linuxconfig/#LinuxConfig #GNU #Linux/' | sed -e 's/#ubuntuhandbook/#UbuntuHandbook #FreeSW #GNU #Linux/' | sed -e 's/#linux-magazine/#LinuxMagazine #FreeSW #GNU #Linux/' | sed -e 's/#tecmint/#TecMint #FreeSW #GNU #Linux/' | sed -e 's/#howtoforge/#HowToForge #GNU #Linux/' | sed -e 's/#ostechnix/#OSTechNix #GNU #Linux/' | sed -e 's/#linuxhandbook/#LinuxHandbook #GNU #Linux/' | sed -e 's/#debugpoint/#DebugPoint #GNU #Linux/' | sed -e 's/#tuxdigital/#TuxDigital #GNU #Linux/' | sed -e 's/#itsubuntu/#ItsUbuntu #GNU #Linux/' | sed -e 's/#linuxgizmos/#LinuxGizmos #Hardware #Devices #GNU #Linux/' | sed -e 's/#linuxuprising/#LinuxUprising #FreeSW #GNU #Linux/' | sed -e 's/#ubuntubuzz/#UbuntuBuzz #GNU #Linux/' | sed -e 's/#linuxsmartphones/#LinuxSmartphones #Mobile #GNU #Linux/' | sed -e 's/#fossbytes/#FossBytes #GNU #Linux/' | sed -e 's/#mozilla/#Mozilla #WWW #FreeSW #Firefox #Internet/' | sed -e 's/How to/#HowTo/' | sed -e 's/'/โ/' | sed -e 's/–/ - /' | sed -e 's/»/ - /' | sed -e 's/'/โ/' | sed -e 's/"/"/' | sed -e 's/&/&/' | sed -e 's/todayโs howtos/Todayโs #HowTos | #UNIX /' | sed -e 's/Opensource.com//' | sed -e 's/todayโs leftovers/Todayโs ๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด Leftovers/' | sed -e 's/Android Leftovers/Google #Android Leftovers/' | sed -e 's/Today in Techrights/๐๐๐๐๐ฃ๐๐๐๐ฅ๐ค: Today in #Techrights/' | sed -e 's/'/โ/' | sed -e 's/’/โ/' | sed -e 's/’/โ/' | sed -e 's/‘/โ/' | sed -e 's/–/ - /' | sed -e 's/»/ - /' | sed -e 's/'/โ/' | sed -e 's/"/"/' | sed -e 's/—/"/' | sed -e 's/&/\&/' | sed -e 's/&/\&/'| sed -e 's/…/.../'| sed -e 's/Programming Leftovers/Programming Leftovers/'| sed -e 's/IRC Proceedings/#IRC Proceedings/'| sed -e 's/| Tux Machines /โข Tux Machines /'| sed -e 's/| Techrights /โข ััยขะฝัฮน๏ปญะฝัั / '
echo ''
# echo ''
# echo ''
echo -n -e "\e[5;45;3$(( $RANDOM * 6 / 32767 + 1 ))mUPDATE UPDATE UPDATE UPDATE UPDATE UPDATE"
echo -e "\e[7;47;3$(( $RANDOM * 6 / 32767 + 1 ))m"
done < ~/newtuxdiff.txt
# Add colours below
echo -n -e "\e[6;45;3$(( $RANDOM * 6 / 32767 + 1 ))m" \
> ~/newtuxtime.txt
echo -n -e "\e[7;47;3$(( $RANDOM * 6 / 32767 + 1 ))m" \
>> ~/newtuxtime.txt
echo -n -e "\e[3$(( $RANDOM * 6 / 32767 + 1 ))m$(date): | " \
> ~/tuxtime.txt
sleep 100
done
Desktop-Utils/check_murmur.sh
tail -F --retry /var/log/mumble-server/mumble-server.log
Desktop-Utils/view_irc.sh
# clear
# Notes:
#
# explanation of exclusions (grep -v), in order:
#
# extra cruft
# less racism in view
# bot activity
# no need to see these
# explanation of sed, in order:
#
# tighten layout
# indent news and self
# shorten lines
# limit output
tail -n 400 irc-status.txt \
| cut -c18-135 \
| GREP_COLOR='01;36' grep --color=always 'techrights-news\|$' \
| grep -i --color=always 'schestowitz\|$' \
| grep -v -e '<==' \
-e 'Daemon' \
-e 'techrights-ipfs-bot' \
-e 'IRC logs ready' \
-e 'Binary file' \
| sed -e 's/> / /' \
-e 's/techrights-news/ TR/' \
-e 's/schestowitz/ RS/' \
| uniq \
| sed -e 's/โ.*$//' \
-e 's/โข.*$//' \
| tail -n55
Desktop-Utils/tuxurl.sh
# !/bin/bash
# mouse-attached function to help with Tux Machines
# Public Domain, Roy Schestowitz
while :
do
# echo ''
# echo ''
cp ~/tuxurl.txt ~/tuxurl-old.txt
curl --silent "http://www.tuxmachines.org/node/feed" \
| grep -E '(link>|link>)' \
| sed -e "s/ <link>//" -e "s/<\/link>//" \
| head -n20 \
| tail -n19 > ~/tuxurl.txt
cat ~/tuxurl.txt ~/tuxurl-old.txt ~/tuxurl-old.txt \
| sort \
| uniq -u > ~/tuxdiff.txt #list of diffs
# cat ~/tuxdiff.txt ~/tuxurl-old.txt | sort -r | uniq -u > ~/tuxdiff2.txt #list of old diffs
# cat ~/tuxurl.txt ~/tuxdiff2.txt | sort -r | uniq -u > ~/tuxdiff3.txt
while read p; do
echo ''
cat ~/tuxtime.txt
notify-send \
--app-name=konversation \
-t 3500 \
-u low 'TUX MACHINES UPDATES READY!!!!!'
URL=$p
#gemini URL
# PROTOCOL=$(echo $URL | sed 's|https://news.|gemini://gemini.|')
# GEM=$(echo $PROTOCOL | sed 's|.shtml|.gmi|')
echo '' > ~/clip.html #clear file
TITLE=$(wget -qO- $URL \
| perl -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si')
DOMAIN=$(echo -n "$URL" \
| sed -e 's/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/' \
-e 's/www.//' \
-e 's/blogs.//' \
-e 's/blog.//' \
| awk -F. '{print $1}')
# echo -n '<li><h5><a href="' >> ~/clip.html && echo -n $URL >> ~/clip.html && echo -n '">' >> ~/clip.html && echo -n $TITLE >> ~/clip.html && echo -n '</a></h5>' >> ~/clip.html
echo '\n--------' >> ~/clip.html
# printf '%(/%Y/%m/%d/)T' >> ~/clip.html
echo -n $TITLE >> ~/clip.html \
&& echo -n ' โจ ' >> ~/clip.html \
&& echo -n $URL >> ~/clip.html \
&& echo -n ' #' >> ~/clip.html \
&& echo -n $DOMAIN >> ~/clip.html
# && gemini://gemi.dev/cgi-bin/waffle.cgi/view?" >> ~/clip.html \
# && echo -n "${URL/:/"%3A"}" >> ~/clip.html
# echo '\n--------' >> ~/clip.html
# head -n2 ~/clip.html
tail -n1 ~/clip.html \
| sed -e 's/#tuxmachines//' \
-e 's/#phoronix/#Phoronix #Kernel #Linux ๐ง/' \
-e 's/#fsf /#FSF #GNU #FreeSW #SoftwareFreedom /' \
-e 's/#gamingonlinux/#GamingOnLinux #GNU #Linux #Games #Gaming ๐ง/' \
-e 's/#gnu/#FSF #GNU #FreeSW #SoftwareFreedom/' \
-e 's/#cnx-software/#Linux #GNU #Hardware #cnxsoftware/' \
-e 's/#linuxlinks/#LinuxLinks #GNU #Linux/' \
-e 's/#linuxhint/#LinuxHint #GNU #Linux ๐ง/' \
-e 's/#documentfoundation/#documentfoundation #opendocument #freesw #libreoffice #odf/' \
-e 's/#techrights/#Techrights #GNU #Linux #FreeSW/' \
-e 's/#itsfoss/#ItsFOSS #GNU #Linux #Freesw/' \
-e 's/#gnome/#GNOME #GNU #Linux #GTK/' \
-e 's/#redhat/#RedHat #IBM #GNU #Linux/' \
-e 's/#lwn/#LWN #GNU #Linux/' \
-e 's/#fedora/#Fedora #RedHat #IBM #GNU #Linux/' \
-e 's/#opensource/#FreeSW #RedHat #IBM #GNU #Linux/' \
-e 's/#omgubuntu/#OMGUbuntu #GNU #Linux/' \
-e 's/#youtube/#Video #Google #YouTube/' \
-e 's/#debian/#Debian #GNU #Linux #FreeSW ๐ง/' \
-e 's/how to/#HowTo/' \
-e 's/How To/#HowTo/' \
-e 's/#arduino/#Arduino #Hardware #OpenHardware #Hacking/' \
-e 's/#linuxjournal/#LinuxJournal #GNU #Linux/' \
-e 's/#linuxreviews/#LinuxReviews #GNU #Linux/' \
-e 's/#ubuntupit/#UbuntuPIT #GNU #Linux/' \
-e 's/#linuxconfig/#LinuxConfig #GNU #Linux/' \
-e 's/#ubuntuhandbook/#UbuntuHandbook #FreeSW #GNU #Linux/' \
-e 's/#linux-magazine/#LinuxMagazine #FreeSW #GNU #Linux/' \
-e 's/#tecmint/#TecMint #FreeSW #GNU #Linux/' \
-e 's/#howtoforge/#HowToForge #GNU #Linux/' \
-e 's/#ostechnix/#OSTechNix #GNU #Linux/' \
-e 's/#linuxhandbook/#LinuxHandbook #GNU #Linux/' \
-e 's/#debugpoint/#DebugPoint #GNU #Linux/' \
-e 's/#tuxdigital/#TuxDigital #GNU #Linux/' \
-e 's/#itsubuntu/#ItsUbuntu #GNU #Linux/' \
-e 's/#linuxgizmos/#LinuxGizmos #Hardware #Devices #GNU #Linux/' \
-e 's/#linuxuprising/#LinuxUprising #FreeSW #GNU #Linux/' \
-e 's/#ubuntubuzz/#UbuntuBuzz #GNU #Linux/' \
-e 's/#linuxsmartphones/#LinuxSmartphones #Mobile #GNU #Linux/' \
-e 's/#fossbytes/#FossBytes #GNU #Linux/' \
-e 's/#mozilla/#Mozilla #WWW #FreeSW #Firefox #Internet/' \
-e 's/How to/#HowTo/' \
-e 's/'/โ/' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/&/&/' \
-e 's/todayโs howtos/Todayโs ๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด HowTos /' \
-e 's/Opensource.com//' \
-e 's/todayโs leftovers/Todayโs ๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด Leftovers/' \
-e 's/Android Leftovers/๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด: Google #Android Leftovers/' \
-e 's/Today in Techrights/Today in Techrights/' \
-e 's/'/โ/' \
-e 's/’/โ/' \
-e 's/’/โ/' \
-e 's/‘/โ/' \
-e 's/–/ - /' \
-e 's/»/ - /' \
-e 's/'/โ/' \
-e 's/"/"/' \
-e 's/—/"/' \
-e 's/&/\&/' \
-e 's/&/\&/' \
-e 's/…/.../' \
-e 's/Programming Leftovers/๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด Programming Leftovers/' \
-e 's/IRC Proceedings/#IRC Proceedings/' \
-e 's/| Tux Machines /โข Tux Machines /' \
-e 's/| Techrights /โข ััยขะฝัฮน๏ปญะฝัั / '
echo ''
# echo ''
# Deprecated below, for option without hashes
#
# tail -n1 ~/clip.html | sed -e 's/#tuxmachines//' | sed -e 's/#phoronix/#Phoronix #Kernel #Linux ๐ง/' | sed -e 's/#fsf /#FSF #GNU #FreeSW #SoftwareFreedom /' | sed -e 's/#gamingonlinux/#GamingOnLinux #GNU #Linux #Games #Gaming ๐ง/' | sed -e 's/#gnu/#FSF #GNU #FreeSW #SoftwareFreedom/' | sed -e 's/#cnx-software/#Linux #GNU #Hardware #cnxsoftware/' | sed -e 's/#linuxlinks/#LinuxLinks #GNU #Linux/' | sed -e 's/#linuxhint/#LinuxHint #GNU #Linux ๐ง/' | sed -e 's/#documentfoundation/#documentfoundation #opendocument #freesw #libreoffice #odf/' | sed -e 's/#techrights/#Techrights #GNU #Linux #FreeSW/' | sed -e 's/#itsfoss/#ItsFOSS #GNU #Linux #Freesw/' | sed -e 's/#gnome/#GNOME #GNU #Linux #GTK/' | sed -e 's/#redhat/#RedHat #IBM #GNU #Linux/' | sed -e 's/#lwn/#LWN #GNU #Linux/' | sed -e 's/#fedora/#Fedora #RedHat #IBM #GNU #Linux/'| sed -e 's/#opensource/#FreeSW #RedHat #IBM #GNU #Linux/'| sed -e 's/#omgubuntu/#OMGUbuntu #GNU #Linux/' | sed -e 's/#youtube/#Video #Google #YouTube/' | sed -e 's/#debian/#Debian #GNU #Linux #FreeSW ๐ง/' | sed -e 's/how to/#HowTo/' | sed -e 's/How To/#HowTo/' | sed -e 's/#arduino/#Arduino #Hardware #OpenHardware #Hacking/' | sed -e 's/#linuxjournal/#LinuxJournal #GNU #Linux/' | sed -e 's/#linuxreviews/#LinuxReviews #GNU #Linux/' | sed -e 's/#ubuntupit/#UbuntuPIT #GNU #Linux/' | sed -e 's/#linuxconfig/#LinuxConfig #GNU #Linux/' | sed -e 's/#ubuntuhandbook/#UbuntuHandbook #FreeSW #GNU #Linux/' | sed -e 's/#linux-magazine/#LinuxMagazine #FreeSW #GNU #Linux/' | sed -e 's/#tecmint/#TecMint #FreeSW #GNU #Linux/' | sed -e 's/#howtoforge/#HowToForge #GNU #Linux/' | sed -e 's/#ostechnix/#OSTechNix #GNU #Linux/' | sed -e 's/#linuxhandbook/#LinuxHandbook #GNU #Linux/' | sed -e 's/#debugpoint/#DebugPoint #GNU #Linux/' | sed -e 's/#tuxdigital/#TuxDigital #GNU #Linux/' | sed -e 's/#itsubuntu/#ItsUbuntu #GNU #Linux/' | sed -e 's/#linuxgizmos/#LinuxGizmos #Hardware #Devices #GNU #Linux/' | sed -e 's/#linuxuprising/#LinuxUprising #FreeSW #GNU #Linux/' | sed -e 's/#ubuntubuzz/#UbuntuBuzz #GNU #Linux/' | sed -e 's/#linuxsmartphones/#LinuxSmartphones #Mobile #GNU #Linux/' | sed -e 's/#fossbytes/#FossBytes #GNU #Linux/' | sed -e 's/#mozilla/#Mozilla #WWW #FreeSW #Firefox #Internet/' | sed -e 's/How to/#HowTo/' | sed -e 's/'/โ/' | sed -e 's/–/ - /' | sed -e 's/»/ - /' | sed -e 's/'/โ/' | sed -e 's/"/"/' | sed -e 's/&/&/' | sed -e 's/todayโs howtos/Todayโs #HowTos | #UNIX /' | sed -e 's/Opensource.com//' | sed -e 's/todayโs leftovers/Todayโs ๐๐ถ๐น ๐๐ข๐ค๐ฉ๐ช๐ฏ๐ฆ๐ด Leftovers/' | sed -e 's/Android Leftovers/Google #Android Leftovers/' | sed -e 's/Today in Techrights/๐๐๐๐๐ฃ๐๐๐๐ฅ๐ค: Today in #Techrights/' | sed -e 's/'/โ/' | sed -e 's/’/โ/' | sed -e 's/’/โ/' | sed -e 's/‘/โ/' | sed -e 's/–/ - /' | sed -e 's/»/ - /' | sed -e 's/'/โ/' | sed -e 's/"/"/' | sed -e 's/—/"/' | sed -e 's/&/\&/' | sed -e 's/&/\&/'| sed -e 's/…/.../'| sed -e 's/Programming Leftovers/Programming Leftovers/'| sed -e 's/IRC Proceedings/#IRC Proceedings/'| sed -e 's/| Tux Machines /โข Tux Machines /'| sed -e 's/| Techrights /โข ััยขะฝัฮน๏ปญะฝัั / '
echo ''
# echo ''
# echo ''
# echo -n -e "\e[5;45;3$(( $RANDOM * 6 / 32767 + 1 ))mUPDATE UPDATE UPDATE UPDATE UPDATE UPDATE"
echo -e "\e[7;47;3$(( $RANDOM * 6 / 32767 + 1 ))m"
done < ~/tuxdiff.txt
echo -n -e "\e[6;45;3$(( $RANDOM * 6 / 32767 + 1 ))m" > ~/tuxtime.txt
echo -n -e "\e[7;47;3$(( $RANDOM * 6 / 32767 + 1 ))m" >> ~/tuxtime.txt
#echo -n -e "\e[3$(( $RANDOM * 6 / 32767 + 1 ))m$(date): | " > ~/tuxtime.txt
sleep 200
done
Desktop-Utils/xbindkeysrc
"konsole --fullscreen -e '/home/roy/menu.sh '"
control+alt+9
"konsole &"
control+alt+8
"xchat &"
control+alt+shift+x
"bash /home/roy/url.sh &"
b:8
# control+alt+shift+a
"sleep 0.2 && xdotool click 1 && xdotool click 1 && xdotool click 1 && xdotool key --delay 1 ctrl+c && bash ~/post-ff.sh &"
b:9
# control+alt+shift+t
# "konsole -e 'sh /home/roy/boycottn.sh '"
# control+alt+shift+b
"jpilot &"
control+alt+shift+j
"vlc &"
control+alt+shift+z
# "nagstamon &"
# control+alt+shift+n
"konversation &"
control+alt+shift+k
# "pidgin &"
# control+alt+shift+p
# "quicksynergy &"
# control+alt+shift+q
# "konsole &"
# control+alt+shift+a
# "kfmclient openProfile filemanagement &"
# control+alt+s
# "kfmclient openProfile filepreview &"
# control+alt+u
# "kfmclient openProfile webbrowsing &"
# control+alt+h
# "kfmclient openProfile midnightcommander &"
# control+alt+t
# "kmail &"
# control+alt+o
# "knode &"
# control+alt+n
# "kssh &"
# control+alt+j
# "qupzilla &"
"falkon &"
control+alt+j
"kcalc &"
control+alt+f
"gimp &"
control+alt+g
"dolphin &"
control+alt+d
# "kedit &"
# control+alt+e
# "/usr/local/mozilla/mozilla &"
# control+alt+m
# "soundwrapper xmms &"
# control+alt+z
"/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=librewolf --file-forwarding io.gitlab.librewolf-community &"
control+alt+b
# "/opt/OpenOffice.org/program/soffice &"
# control+alt+i
# "kcontrol &"
# control+alt+c
"systemsettings5 &"
control+alt+c
# "kcontrol &"
# control+alt+c
# "kwrite &"
# control+alt+w
"kate &"
control+alt+w
# "/home/roy/Main/Programs/rssowl/run.sh &"
# control+alt+q
"quiterss &"
control+alt+q
"chromium-browser &"
control+alt+shift+c
# "ark &"
# control+alt+p
"~/tr-remote-gemini-cron-updater &"
control+alt+p
# "xlock -mode ball -delay 10&"
# control+alt+l
# "thunderbird &"
# control+alt+0
# "kdf &"
# control+alt+1
# "kfmclient openProfile Reports &"
# control+alt+2
# "konsole -e ssh -l root -X baine.smb.man.ac.uk &"
# control+alt+3
"ksnapshot &"
control+alt+shift+4
# "minirok &"
# control+alt+m
"flameshot gui &"
control+alt+5
"bash ~/post-ff.sh &"
control+alt+6
# "xdotool click 1 && xdotool click 1 && xdotool click 1 && xdotool key --delay 10 ctrl+x && bash ~/post-ff.sh &"
# control+alt+5
"sleep 2 && bash ~/post-ff.sh &"
control+alt+7
# "/home/roy/Main/Programs/Scripts/indent.sh &"
# control+alt+7
# "kfmclient openProfile Photos &"
# control+alt+8
# "pixie &"
# control+alt+9
# "choqok &"
# control+alt+9
# "perl ~/Main/Programs/Scripts/unlink.pl &"
# control+alt+shift+q
# "kpager &"
# control+alt+shift+1
# "mv ~/32423432343425 ~/.bashrc"
# control+alt+shift+m
# "mv ~/.bashrc ~/32423432343425"
# control+alt+shift+v
Desktop-Utils/git-show.sh
cd ~/Git-TM/tuxmachines.org/tuxmachines.org/ && git show && cd ~/Git && git show
Desktop-Utils/tr-refresh-video-gallery.sh
#!/bin/sh
# run via INCRON
# /var/www/techrights.org/htdocs/videos IN_CREATE,recursive=false /usr/local/bin/tr-refresh-video-gallery.sh
# Simple script to create or refresh the listing of Techrights videos
# Public Domain, Roy Schestowitz
# See Git for change history
# Some notes/TODO at the bottom
PATH=/usr/local/bin:/usr/bin:/bin
if [ ${UID} -eq 0 && ${EUID} -eq 0 ]; then
echo "Cannot run as root!"
echo "Aborting"
exit 1
fi
sleep 2
month=$(date +'%B-%Y')
date > /tmp/foo
set -e
documentroot=/var/www/techrights.org/htdocs
tmpdir=$(mktemp -d /tmp/videos-tmp.XXXXXX)
tmpfile1=$(mktemp -p ${tmpdir} videos-tmp.XXXXXXX)
tmpfile2=$(mktemp -p ${tmpdir} videos-tmp.XXXXXXX)
trap "rm -f -- $tmpfile1; rm -f -- $tmpfile2; rmdir -- ${tmpdir}" EXIT
cd /var/www/techrights.org/htdocs/videos/
#monthly mode below
# find *.gif -newermt "01-$month -1 sec" -and -not -newermt \
# "01-$month +1 month -1 sec" > ${tmpfile1}
find *.gif \
-mtime -7 \
-printf '%T@ %p\0' \
| sort -zk 1nr \
| sed -z 's/^[^ ]* //' \
| tr '\0' '\n' \
> ${tmpfile1}
# (Save as 'gif', progress onwards)
sed 's/.gif//' ${tmpfile1} > ${tmpfile2}
# make genric slugs; note that videos without animated previews won't be listed
echo '' > ${documentroot}/videos/index-body.html
# flush down file
while IFS= read -r line; do
echo -n "<span><a target="video" href=\"$line.webm\">\
<img width=\"300\" hspace=\"20\" vspace=\"20\" \
style=\"padding: 0.2em; box-shadow: 0.2em 0.2em 0.2em #222;\" \
src=\"$line.gif\" alt=\"$line\" title=\"" \
>> ${documentroot}/videos/index-body.html
date -r $line.webm -u \
>> ${documentroot}/videos/index-body.html
echo "\" /></a>" \
>> ${documentroot}/videos/index-body.html
done < ${tmpfile2}
cat \
${documentroot}/videos/index-top.html \
${documentroot}/videos/index-body.html \
${documentroot}/videos/index-bottom.html \
> ${documentroot}/videos/index.html
exit 0
# IMPORTANT: Change month at top of file! 3-letter-month-format
# (This will send output to ~/public_html/videos/index.html
# i.e. default page to serve to visitors)
# change month at top, then change to month mode
# run script
# (rename file for old archive, at end of each month, 'mv index.html some file'
# e.g. cp ~/public_html/videos/index.html ~/public_html/videos/index-July-2021.html
# add any additional index-template bits (if needed)
# add correct month as >>both<< title and header, set footer date
# (if unsuitable), e.g. "Techrights Videos - August 2023"
# (change back to weekly mode, rerun and test is OK after changes;
# test both monthly index and new page, then weekly at ~/video)
# Update archives index:
# nano ${documentroot}/videos/archive/index.html
# (at end of year change date at bottom as well)
# Push any changes to this file to Git
Desktop-Utils/text-upload.sh
#!/bin/bash
for IRCAGE in {1..1}
do
url='http://techrights.org/feed/'
d=$(date --date="$IRCAGE days ago" +'%m/%d/')
echo "Checking for date: ${d}"
wget -q -O- ${url} |\
grep "#comments" |\
grep "techrights" |\
grep "${d}" |\
sort | uniq | sed 's/<comments>//' | sed 's/<\/comments>//' > ~/daily_articles.txt
dailylinksurl='http://techrights.org/category/news-roundup/feed/'
wget -q -O- ${dailylinksurl} |\
grep "#comments" |\
grep "techrights" |\
grep "${d}" |\
sort | uniq | sed 's/<comments>//' | sed 's/<\/comments>//' > ~/daily_links.txt
grep -Fvx -f ~/daily_links.txt ~/daily_articles.txt > ~/remaining.list &&
mv ~/remaining.list ~/daily_articles.txt
IRCFULLDATE=$(date --date="$IRCAGE days ago" "+%A, %B %d, %Y")
IRCDATEFILE=techrights-$(date --date="$IRCAGE days ago" +"%Y-%m-%d").txt
echo ๐ฟ๐๐๐๐๐๐๐๐๐ Bulletin for $IRCFULLDATE > $IRCDATEFILE
echo โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
>> $IRCDATEFILE
echo Generated $(date) >> $IRCDATEFILE
seconds1=$(date +%s)
echo Created by Dr. Roy Schestowitz \(๐๐๐ข \(at\) ๐๐๐๐๐๐๐๐ ๐๐๐ฃ \(dot\) ๐๐๐\) >> $IRCDATEFILE
echo Full hyperlinks for navigation omitted but are fully available in the originals >> $IRCDATEFILE
echo The corresponding HTML versions are at ๐๐๐๐๐๐๐๐๐๐.๐๐๐ >> $IRCDATEFILE
echo 'Latest in ๐๐๐๐://๐๐๐๐๐๐๐๐๐๐.๐๐๐/๐๐๐ and older bulletins can be found at ๐๐๐๐://๐๐๐๐๐๐๐๐๐๐.๐๐๐/๐๐๐-๐๐๐๐๐๐๐๐' >> $IRCDATEFILE
echo 'Full IPFS index in ๐๐๐๐://๐๐๐๐๐๐๐๐๐๐.๐๐๐/๐๐๐๐ and as plain text in ๐๐๐๐://๐๐๐๐๐๐๐๐๐๐.๐๐๐/๐๐๐๐/๐๐๐' >> $IRCDATEFILE
echo -n "Gemini index for the day: " >> $IRCDATEFILE
date -d "-1 days" +"gemini://gemini.techrights.org/%Y/%m/%d/" >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo 'โโโโโโโโโโโโโโโโโโโโ ๐๐๐๐๐๐ ๐๐๐๐๐๐๐๐๐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' >> $IRCDATEFILE
echo ' Previous bulletins in IPFS (past 21 days, in chronological order):' >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
wget -q -O- http://techrights.org/ipfs/txt | grep bulletin | cut -d ' ' -f 1 | tail -n21 >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo 'โโโโโโโโโโโโโโโโโโโโ ๐๐๐๐๐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
input="daily_articles.txt"
while IFS= read -r line
do
echo -n 'โฆฟ ' >> $IRCDATEFILE
wget -qO- $line | perl -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si' | sed -e 's/'/โ/' | sed -e 's/–/ - /' | sed -e 's/»/ - /' | sed -e 's/'/โ/' | sed -e 's/"/"/' | sed -e 's/&/&/' | sed -e 's/'/โ/' | sed -e 's/’/โ/' | sed -e 's/’/โ/' | sed -e 's/‘/โ/' | sed -e 's/–/ - /' | sed -e 's/»/ - /' | sed -e 's/'/โ/' | sed -e 's/'/โ/' | sed -e 's/'/โ/' | sed -e 's/"/"/' | sed -e 's/—/"/' | sed -e 's/—/ - /' | sed -e 's/—/ - /' | sed -e 's/&/\&/' | sed -e 's/&/\&/'| sed -e 's/…/.../' >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
done < "$input"
echo ' ไทผ Bulletin articles (as HTML) to comment on (requires login):' >> $IRCDATEFILE
cat ~/daily_articles.txt >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo ' ไท Followed by Daily Links (assorted news picks curated and categorised):' >> $IRCDATEFILE
cat ~/daily_links.txt >> $IRCDATEFILE
input="daily_articles.txt"
while IFS= read -r line
do
echo $line
echo '' >> $IRCDATEFILE
echo -n ' ไทฉ ๐๐๐๐ ' >> $IRCDATEFILE
wc -l < $IRCDATEFILE >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo 'โโโโโโโโโโโโโโโโโโโโ ๐๐๐๐๐๐๐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' >> $IRCDATEFILE
echo "" >> $IRCDATEFILE
echo -n "(โน) Images, hyperlinks and comments at " >> $IRCDATEFILE
echo $line >> $IRCDATEFILE
echo -n " Gemini version at " >> $IRCDATEFILE
GEM=$(echo $line | sed 's/http:\/\//gemini:\/\/gemini./' | sed 's/#comments//')
echo $GEM >> $IRCDATEFILE
echo "" >> $IRCDATEFILE
wget -O- -q $line | html2text | awk '/โง/ {p=1}; p==1 {print}' | awk '{print; if (match($0,"Share in other sites")) exit}' | head -n -1 >> $IRCDATEFILE
if [[ $line != *"irc-log-"* ]] ;
then
wget -O- -q $line | awk '/endif/ {p=1}; p==1 {print}' | awk '{print; if (match($0,"Share in other sites")) exit}' | sed -n '/<img/s/.*src="\([^"]*\)".*/\1/p' | xargs -L1 chafa --color-space din99d -c none --symbols braille -w 9 -s 78 >> $IRCDATEFILE
fi
done < "$input"
input="daily_links.txt"
while IFS= read -r line
do
echo 'Links:'
echo $line
echo '' >> $IRCDATEFILE
echo -n ' ไทฉ ๐๐๐๐ ' >> $IRCDATEFILE
wc -l < $IRCDATEFILE >> $IRCDATEFILE
echo '' >> $IRCDATEFILE
echo 'โโโโโโโโโโโโโโโโโโโโ ๐๐๐๐๐ ๐๐๐๐๐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' >> $IRCDATEFILE
echo "" >> $IRCDATEFILE
wget -O- -q $line | html2text | awk '/โง/ {p=1}; p==1 {print}' | awk '{print; if (match($0,"Share in other sites")) exit}' | head -n -1 >> $IRCDATEFILE
done < "$input"
echo 'โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' >> $IRCDATEFILE
echo -n ' ยถ Lines in total: ' >> $IRCDATEFILE
wc -l < $IRCDATEFILE >> $IRCDATEFILE
echo -n ' โฎ ' >> $IRCDATEFILE
echo -n Generation completed at $(date +%R) >> $IRCDATEFILE
seconds2=$(date +%s )
delta=$((seconds2 - seconds1))
echo ", i.e. $delta seconds to (re)generate โฒ" >> $IRCDATEFILE
echo ""
echo "Done generating. Upload next."
echo ""
echo '========= Sending Bulletin to Techrights ========= '
[redacted]
echo '========= Sending Bulletin to Raspi ========= '
[redacted]
echo ""
echo Techrights Bulletin for $IRCFULLDATE http://techrights.org/txt full archive: http://techrights.org/txt-archives
echo ""
echo 'Techrights full IPFS index updated just now http://techrights.org/ipfs available as plain text @ http://techrights.org/ipfs/txt'
echo ""
echo "โฉโโโโโ
โโโ๐๐๐๐๐๐๐๐โโโโ
โโโโโฉ Yesterday's bulletin is now ready! ๐
ท๐๐๐
ฟ: http://techrights.org/txt-archives/$IRCDATEFILE | ๐
ถ๐
ด๐
ผ๐
ธ๐
ฝ๐
ธ gemini://gemini.techrights.org/tr_text_version/$IRCDATEFILE (tentative address, to work an hour from now)" > ~/ii//techrights3/irc.techrights.org/#boycottnovell-social/in
echo "โฉโโโโโ
โโโ๐๐๐๐๐๐๐๐โโโโ
โโโโโฉ Yesterday's bulletin is now ready! ๐
ท๐๐๐
ฟ: http://techrights.org/txt-archives/$IRCDATEFILE | ๐
ถ๐
ด๐
ผ๐
ธ๐
ฝ๐
ธ gemini://gemini.techrights.org/tr_text_version/$IRCDATEFILE (tentative address, to work an hour from now)" > ~/ii/techrights3/irc.techrights.org/#techrights/in
done
DISPLAY=:0.0 falkon http://techrights.org/txt
sleep 20
Desktop-Utils/.directory-listing-ok
Desktop-Utils/track-apache-logs-host-documents.sh
#!/bin/sh
# 2021-06-25
# follow the Apache logs
# and show only legit requests for host
# main documents
tail -F /var/log/httpd/techrights.org-access_log \
| awk '
$9=="200" &&
$6~/GET/ &&
$7!~/\.jpe?g$/ && \
$7!~/\.png$/ && \
$7!~/\.gif$/ {\
print
};
{
fflush();
}'
Desktop-Utils/tweets.sh
# curl -4 http://wttr.in/Manchester feh --bg-fill --randomize /media/roy/c3fd5b6e-794f-4f24-b3e7-b4ead3722f11/home/roy/Main/Graphics/Wallpapers/Single\ Head/natgeo/* & while [ 1 ] do echo 'โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' tail -n 5000 ~/.xchat2/xchatlogs/FreeNode-#boycottnovell-social.log | cut -c 30-190 | sed s/11\#/\#/ | sed 's/13\@/___________________________TWEET_TO_/' | sed 's/02 \@schestowitz/RT_OF__________________________\@schestowitz_RT_/' | grep -a -B1 -A2 --color=auto @schest |grep -a -v "@schest" # tail -n 5000 ~/.xchat2/xchatlogs/FreeNode-#boycottnovell-social.log | cut -c 30-190 | sed s/11\#/\#/ | sed 's/13\@/___________________________TWEET_TO_/' | sed 's/02 \@schestowitz/RT_OF__________________________\@schestowitz_RT_/' | grep -B1 -A2 -c2 --color=auto @schest |grep -v "@schest" | sed 'N;s/\n/ /' | sed 'N;s/\-\-/ /' # tail -n 5000 ~/.xchat2/xchatlogs/FreeNode-#boycottnovell-social.log | cut -c 45-190 | sed s/11\#/\#/ | sed 's/13\@/___________________________TWEET_TO_/' | sed 's/02 \@schestowitz/RT_OF__________________________\@schestowitz_RT_/' | grep -A2 --color=auto @schest |grep -v "@schest" | sed 'N;s/\n/ /' | sed 'N;s/\-\-/ /' # tail -n 5000 ~/.xchat2/scrollback/FreeNode/#boycottnovell-social.txt | sed s/11\#/\#/ | grep --color=auto schestowitz | grep -v "twitter.com" # tail -n 10000 ~/.xchat2/xchatlogs/FreeNode-#boycottnovell-social.log echo 'โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' tail -n 5000 ~/.xchat2/xchatlogs/FreeNode-#boycottnovell-social.log | cut -c 30-190 | sed 's/\.\.\.*/_________!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!/' | grep --color=auto joindia # echo 'โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ' # date sleep 1900 clear # feh --bg-fill --randomize /media/roy/c3fd5b6e-794f-4f24-b3e7-b4ead3722f11/home/roy/Main/Graphics/Wallpapers/Single\ Head/natgeo/* & done ]
Desktop-Utils/compress-links.sh
awk '!seen[$0]++' RSS.html | sed 's/โโโโโ http/\n\n\n\nโโโโโ http/' >> RSS2.html
Desktop-Utils/tail-irc.sh
# tail -f ~/.xchat2/xchatlogs/FreeNode-*
# tail -f ~/.xchat2/xchatlogs/FreeNode-#* | grep "<" # | sed "s/\=\=> \/home\/roy\/.xchat2\/xchatlogs\/FreeNode-/ /"
# tail -f ~/.xchat2/xchatlogs/FreeNode-#* | sed "s/aaa/ /"
# tail -f ~/.xchat2/xchatlogs/FreeNode-#* | sed "s/\=\=> \/home\/roy\/.xchat2\/xchatlogs\/FreeNode-/ /"
# tail -f ~/.xchat2/xchatlogs/FreeNode-#* # | sed "s/home\/roy\/.xchat2\/xchatlogs\/FreeNode-/ /" | grep "<"
tail -n 0 -F ~/.xchat2/xchatlogs/FreeNode-#* \
| sed -n -u "/</ {s|==> /home/roy/.xchat2/xchatlogs/FreeNode-| |;p}" >> ~/irc-status.txt
Desktop-Utils/dents.sh
rsstail -u https://joindiaspora.com/public/schestowitz.atom -d -1 | grep -v 'Title:' | html2text -width 1000 | sed 's/'Description:'/โฌ/'
Desktop-Utils/timeline.sh
#!/bin/sh
# Timeline (an outdated name) deals with Daily Links.
# It processes or pre-processes batches of links for
# Posting and tidying up.
#
# A lot of the below bits are commented out because
# (for legacy reasons) it was optimised somewhat
# for social control media.
cd ~
find ./Links/ -type f -name '*-merged.html' -print | sort -r | head -n 1
# Get the latest file in the batch
Date=$(date +"%F")
YEAR=$(date -d "${Date}" +"%Y")
MONTH=$(date -d "${Date}" +"%m")
DAY=$(date -d "${Date}" +"%d")
# sed -e 's/<!-- /โ NEWS โ # โ /; s/ -->//;' ~/Desktop/Text_Workspace/images/$YEAR-$MONTH-$DAY-merged.html > ~/Desktop/Text_Workspace/images/timeline.html && kate ~/Desktop/Text_Workspace/images/timeline.html
# sed -e 's/<!-- /โ NEWS โ # โ /; s/ -->//;' \
# DATE=$(date -d "$D" '+%F')
ls -la ~/Links/m$YEAR-$MONTH/$YEAR-$MONTH-$DAY-merged.html
# Display details such as size
echo 'Loading in 0.5 secs' # Vary a bit to debug the above, see "sleep" below
echo 'Retreiving technical/supplementary feeds'
daily-supplementary-feeds.sh # This could be done as a background job, but then there's no guarantee
# it'll finish on time (race condition)
sleep 0.5
cat ~/Links/m$YEAR-$MONTH/$YEAR-$MONTH-$DAY-merged.html ~/$YEAR-$MONTH-$DAY.supplementary.html > ~/Desktop/Text_Workspace/images/timeline-mix.html && \
perl ~/add-lines-for-irc.pl ~/Desktop/Text_Workspace/images/timeline-mix.html | \
sed -Ee 's/<!--( h.*)-->/"" โ\1/' \
> ~/Desktop/Text_Workspace/images/timeline.html && \
sed -Ee 's|<blockquote></blockquote>| |' \
-e 's|<blockquote><p></p></blockquote>| |' \
~/Desktop/Text_Workspace/images/timeline.html \
> ~/Desktop/Text_Workspace/images/timeline2.html && \
sed -e '1,21d' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
head -n -3 ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
sed 's/<\/ul><\/li>/ /' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#Meduza/#meduza #ru #russia/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
sed 's/<\/ul>/ /' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
perl -0777 -pe 's/ <p>\n <\/p>\n //g' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#TorrentFreak/#TorrentFreak #copyright #copyrights/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
sed 's/ - CounterPunch.org//' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
sed 's/ <hr \/>/\n\n\n/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
sed 's/Source: 0//' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
perl -0777 -pe 's/<blockquote>\n<\/blockquote>/\n/g' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
sed 's/<\/blockquote><\/li>/<\/blockquote><\/li>\n/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
sed 's/<hr \/>/\n\n\n\n/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
sed 's/\n\n\n/\n/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
sed 's/<ul>/ /' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#bbcdotco/#BBC/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#eudot/#/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#RaspberryPi/#RaspberryPi #RasPi #GNU #Linux/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#endot/#/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#nbcnews/#NBC/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#EditionDotCNN/#CNN/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#Economist/#TheEconomist/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
sed 's/<\/div>/ \n\n\n\n\n\n\n/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#apnews/#AP/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#voanews/#VoA/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#nytimes/#NYTimes/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#nytimes/#NYTimes/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#theverge/#TheVerge/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#TaiwanNews/#taiwannews #taiwan #tw/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#timesofindiadotindiatimes/#indiatimes #india #in/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#buzzfeednews/#buzzfeed/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#Dawn/#dawn #pk #pakistan/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#textdotnpr/#NPR/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#telesurenglish/#telesur/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#endot/#/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#eudot/#/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#thenation/#TheNation/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#desmogblog/#desmog/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#utccdotutoronto/#uniToronto/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#HongKongFP/#HongKongFP #HK #HongKong #PRC/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#thegrayzone/#GrayZone/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#ABCNewsdotGo/#ABC/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#fivethirtyeight/#FiveThirtyEight/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#iscdotsans/#sans/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/#InternetSociety/#InternetSociety #isoc #internet/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
sed 's/#webdot/#/' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# sed 's/dotco #/ #/' ~/Desktop/Text_Workspace/images/timeline.html > ~/Desktop/Text_Workspace/images/timeline2.html && \
# sed 's/#DW /#DW #DeutscheWelle /' ~/Desktop/Text_Workspace/images/timeline2.html > ~/Desktop/Text_Workspace/images/timeline.html && \
# kate ~/Desktop/Text_Workspace/images/timeline.html
# Now pass the whole lot to the working file, without deleting what's already on it (may be work in progress)
cat ~/Desktop/Text_Workspace/images/timeline.html \
>> ~/Desktop/Text_Workspace/links.html
perl -0777 -pe 's/\n=/\n\n\n\n\n\n\n/g' ~/Links/m$YEAR-$MONTH/other-links-$YEAR-$MONTH-$DAY.txt \
>> ~/Desktop/Text_Workspace/links.html
echo 'closing in 2 secs'
sleep 2
Desktop-Utils/tr-remote-gemini-cron-updater
#!/bin/sh
# 2021-02-19
PATH=/usr/local/bin:/usr/bin:/bin
qdbus org.kde.KWin /KWin setCurrentDesktop 3 # go to correct workspace, just in case
falkon https://validator.w3.org/check?uri=http%3A%2F%2Ftechrights.org%2F%3Fstoriesd&charset=%28detect+automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.3+http%3A%2F%2Fvalidator.w3.org%2Fservices
bash ./process-latest-post.sh
# falkon http://techrights.org/?stories
tmp=$(mktemp) || exit 1
trap "rm -f -- \"$tmp\"" EXIT
# this key is locked at the other end and not good for anything else
# it will only run the cron updater script
# there appears to no longer be a way to either embed a key
# or embed a script within a key
cat << EOK > $tmp
[Key deprecated or outdated]
EOK
echo Updating Gemini via RSS
ssh \
-o IdentitiesOnly=yes \
-o IdentityFile="$tmp" \
-o RequestTTY=no \
gemini@gemini.techrights.org
if test 0 -eq $?
then
echo Success
else
echo Failure of some kind
fi
rm -f -- "$tmp"
notify-send --app-name=konversation -t 3500 -u low 'Done updating'
# trap - EXIT
# read -p 'Press Return to Exit' a
# exit 0
Desktop-Utils/check-remote-status.sh
watch -t -n 620 --color 'tail -n200 remote-status.txt | \ uniq && echo " ____________" \ && echo -n " " && \ date +"%F" && \ echo " โโโโโโโโโโโโ"'
Desktop-Utils/rrrrr.sh
#!/bin/sh
PATH=${HOME}/bin:/usr/local/bin:/usr/bin:/bin
style="${XDG_RUNTIME_DIR}/rrrrr.css"
html="${XDG_RUNTIME_DIR}/rrrrr.html"
umask 0027
set -e
read -p 'Press Enter to start .. may take 3 to 6 minutes ...' a
test -f ${style} \
|| rrrrr.py --css > ${style}
echo "Runnning"
time rrrrr.py > ${html}
echo "Completed."
DISPLAY=:0.0 firefox ${html} &
read -p 'Press Enter to close this window' a
exit 0
Desktop-Utils/monitor_irc.sh
watch -n 7 --color ./view_irc.sh
Desktop-Utils/preview.sh
#!/bin/bash
# Licence: Public Domain, feel free to share as you see fit
#
# Author: Roy Schestowitz and others
#
# Purpose: Converts mp4 (downloaded) or webM (typically produced
# locally) into a Techrights-branded video while
# automating much of the workflow, including upload and I/O
#
# Note: Merged videos must be strictly compatible in terms of their
# sampling rate, codec type, and a few other factors.
# This is a common issue for a lot of people who use ffmpeg and it
# took them many hours to overcome (many trials and errors).
# We thus suggest converting the files accordingly, upfront.
#
# For 48k on mute (no sound) pre-process as follows:
# ffmpeg -i "outro.mp4" -f lavfi -i anullsrc=cl=mono:r=48000 \
# -shortest -y "outro-new.mp4"
#
# Another sample rate (44k) on mute, less typical:
# ffmpeg -i "outro.mp4" -f lavfi -i anullsrc=cl=mono:r=44000 \
# -shortest -y "outro-44k.mp4"
#
# Background music at 48k:
# ffmpeg -i "techrights-sunrise.mp4" \
# -i Desktop/Text_Workspace/images/techbytes-music/keep-calm-and-podcast/Balearic-Paradox.mp3 \
# -map 0:v:0 -map 1:a:0 -ar 48000 -shortest -y "techrights-sunrise-new.mp4"
#
# Another track/s:
# ffmpeg -i "art-intro.mp4" -i Desktop/Text_Workspace/images/techbytes-music/keep-calm-and-podcast/Raining-Again.mp3 -map 0:v:0 -map 1:a:0 -ar 48000 -shortest -y "art-intro-new.mp4"
# ffmpeg -i "art-intro.mp4" -i Desktop/Text_Workspace/images/techbytes-music/keep-calm-and-podcast/Let-The-Sunshine.mp3 -map 0:v:0 -map 1:a:0 -ar 48000 -shortest -y "art-intro-new.mp4"
# ffmpeg -i "art-intro.mp4" -i Desktop/Text_Workspace/images/techbytes-music/keep-calm-and-podcast/Step-To-The-Beat.mp3 -map 0:v:0 -map 1:a:0 -ar 48000 -shortest -y "art-intro-new.mp4"
#
# Change recorded file (see settings/screenshots)
#
# Simpler transition for video covers (known as posters):
# ffmpeg -ss 41 -t 3 -i $VIDEO_FILE.webm -vf \
# "select=mod(n\,2),fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 ~/intermediate.gif
# Prepare the inputs and map these onto better variable name
echo Input file $1
VIDEO_FILE=$1
VIDEO_START=$2
VIDEO_NAME=$3
echo Processing $VIDEO_FILE
# By default we work in the home directory (many of the residual files
# will end up dicarded anyway)
cd ~
rm ~/intermediate.gif # purge to avoid nagging (in case of multiple runs)
rm ~/intermediate2.gif
rm $VIDEO_FILE.gif
# Render frame 'numbers'
ffmpeg \
-ss $VIDEO_START \
-t 20 \
-i $VIDEO_FILE.webm \
-vf "select=not(mod(n\,10)),fps=2,scale=480:-1:\
flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
-r 16 -filter:v "setpts=0.1*PTS" \
-loop 0 ~/intermediate.gif
# sleep 2
# Add logo to the preview/poster
ffmpeg \
-i ~/intermediate.gif \
-i ~/videos-techrights/mogz-video-poster-4-small.png \
-filter_complex "[1]format=rgba,colorchannelmixer=aa=0.7[logo];\
[0][logo]overlay=0:H-h--1:format=auto" \
-codec:a copy \
~/intermediate2.gif
# Display additional stuff (text)
date=$(date +%d-%m-%Y)
ffmpeg \
-i ~/intermediate2.gif \
-vf "drawtext=fontfile=/home/roy/Main/Misc/Work/Sirius/sirius_site/templates/fonts/DroidSerif-BoldItalic-webfont.ttf:text='$date':x=520:y=446:fontsize=20:fontcolor=black:box=1:boxcolor=white@0.2: boxborderw=5,drawtext=fontfile=/home/roy/Main/Misc/Work/Sirius/sirius_site/templates/fonts/distth_-webfont.ttf:text='$VIDEO_NAME':x=30:y=0+20*t::fontsize=34:fontcolor=white:box=1:boxcolor=black@0.6: boxborderw=5, drawtext=text='timestamp: %{pts \: hms}': x=490: y=30: fontsize=16:fontcolor=yellow@0.9: box=1: boxcolor=black@0.6: boxborderw=5" \
-c:a copy $VIDEO_FILE.gif
# sleep 2
# Now preview and show file size (for the poster to be uploaded later)
gwenview $VIDEO_FILE.gif # choose image viewer of choice here
ls -la $VIDEO_FILE.gif # just to show the size is 'sane'
# Prepare post template for Techrights (handy for convenient copy-paste)
echo '_____________________________________' && echo "" && echo ""
echo "<em><a href=\"http://techrights.org/videos/$VIDEO_FILE.webm\" title=\"Video file of $VIDEO_NAME\">Video download link</a> | md5sum <code></code></em>" && echo "<b>$VIDEO_NAME</b>" && echo "Creative Commons Attribution-No Derivative Works 4.0" && echo '' && echo "[video width=\"480\" height=\"340\" webm=\"http://techrights.org/videos/$VIDEO_FILE.webm\" poster=\"http://techrights.org/videos/$VIDEO_FILE.gif\"][/video]"
echo "" && echo "<em><b>Summary</b>: </em>"
echo "" && echo ""
echo "<font size=\"5\"><b><a name=\"top\">T</a></b></font>2"
echo "<p class=\"dropcap-first\"><a name=\"top\">T</a></p>"
echo "" && echo ""
echo "<a href=\"#top\">โ</a>"
echo "" && echo "" && echo '_____________________________________'
trap - EXIT
# Prompt to proceed, only if happy with the poster image (otherwise, change and rerun)
read -p 'Press Return to convert full video to MP4 with label' a
# By all means comment out the lines below if the video is
# already in mp4 format (e.g. downloaded from the Web)
nice ffmpeg -i $VIDEO_FILE.webm \
-i ~/videos-techrights/mogz-video-poster-4-short.png \
-filter_complex "[1]format=rgba,colorchannelmixer=aa=0.7[logo];[0][logo]overlay=0:H-h--1:format=auto" \
-c:v libx264 -preset slow \
$VIDEO_FILE.mp4
notify-send --app-name=konversation -t 3500 -u low \
'WebM -> MP4 processing now done! Merging in 10 seconds.'
sleep 10
mv $VIDEO_FILE.webm $VIDEO_FILE.orig.webm # keep safe the original file, just in case something goes wrong
# upload the .gif file upfront to save time and parallelise
notify-send --app-name=konversation -t 3500 -u low 'Uploading gif, creating webM'
# load functions here, AWK will also have to do this to access functions
. ./video-uploads.sh
echo "First upload: GIF file uploaded in the background"
uploadgif $VIDEO_FILE &
echo "Done upload of GIF file"
echo '' > ./recipe.txt # just to be sure (if no information or no file exists)
# Choose at random, or pick manually by uncommenting from the list below
shuf -n 1 intro.list > ./recipe.txt
# -- Or uncomment one of the following --
#
# For intro (grouped in fives)
# (Old):
#
# echo 'file intro-sketch-new.mp4' > ./recipe.txt
# echo 'file intro-beach-new.mp4' > ./recipe.txt
# echo 'file intro-purple-new.mp4' > ./recipe.txt
# echo 'file techrights-sunrise-new.mp4' > ./recipe.txt
# echo 'file intro-new.mp4' > ./recipe.txt
# echo 'file intro-waves-new.mp4' > ./recipe.txt
# echo 'file intro-swoosh-new.mp4' > ./recipe.txt
# echo 'file intro-night-new.mp4' > ./recipe.txt
#
# June 2021:
#
# echo 'file skyline-intro-new.mp4' > ./recipe.txt
# echo 'file art-intro-new.mp4' > ./recipe.txt
# echo 'file monitoring-intro-new.mp4' > ./recipe.txt
# echo 'file bridge-intro-new.mp4' > ./recipe.txt
# echo 'file sky-intro-new.mp4' > ./recipe.txt
# echo 'file paper-intro-new.mp4' > ./recipe.txt
# echo 'file road-intro-new.mp4' > ./recipe.txt
# echo 'file seashore-intro-new.mp4' > ./recipe.txt
# echo 'file top-down-intro-new.mp4' > ./recipe.txt
# echo 'file shoes-intro-new.mp4' > ./recipe.txt
# echo 'file sparkle-intro-new.mp4' > ./recipe.txt
# echo 'file running-intro-new.mp4' > ./recipe.txt
# echo 'file computer-intro-new.mp4' > ./recipe.txt
# echo 'file water-intro-new.mp4' > ./recipe.txt
# echo 'file car-intro-new.mp4' > ./recipe.txt
# echo 'file dirty-beach-intro-new.mp4' > ./recipe.txt
# echo 'file bridges-intro-new.mp4' > ./recipe.txt
# echo 'file mills-intro-new.mp4' > ./recipe.txt
# echo 'file router-intro-new.mp4' > ./recipe.txt
# echo 'file walking-intro-new.mp4' > ./recipe.txt
# echo 'file floor-intro-new.mp4' > ./recipe.txt
# echo 'file rocks-intro-new.mp4' > ./recipe.txt
# echo 'file narwal-intro-new.mp4' > ./recipe.txt
# echo 'file newspaper-intro-new.mp4' > ./recipe.txt
#
# Sept. 2021:
#
# echo 'file red-new.mp4' > ./recipe.txt
# echo 'file horror-new.mp4' > ./recipe.txt
# echo 'file amber-new.mp4' > ./recipe.txt
# echo 'file bench-new.mp4' > ./recipe.txt
# echo 'file people-new.mp4' > ./recipe.txt
# echo 'file letters-new.mp4' > ./recipe.txt
# echo 'file trees-new.mp4' > ./recipe.txt
# echo 'file man-sitting-new.mp4' > ./recipe.txt
# echo 'file indie-new.mp4' > ./recipe.txt
# echo 'file Techrights-new.mp4' > ./recipe.txt
# 44k, mute (no sound):
# echo 'file intro-44k.mp4' > ./recipe.txt
echo file $VIDEO_FILE.mp4 >> ./recipe.txt
# the key content to be 'sandwiched'
shuf -n 1 outro.list >> ./recipe.txt
# -- Or uncomment one (or more) of the following --
#
# Outro
#
# echo 'file outro-palawan-new.mp4' >> ./recipe.txt
# echo 'file outro-new.mp4' >> ./recipe.txt
# echo 'file outro-space-new.mp4' >> ./recipe.txt
# echo 'file outro-office-new.mp4' >> ./recipe.txt
# echo 'file outro-island-new.mp4' >> ./recipe.txt
#
# echo 'file outro-thank-you-new.mp4' >> ./recipe.txt
# echo 'file outro-subway-new.mp4' >> ./recipe.txt
#
# June 2021:
#
# echo 'file Techrights-Arrows-new.mp4' >> ./recipe.txt
# echo 'file retro-outro-new.mp4' >> ./recipe.txt
# echo 'file space-outro-new.mp4' >> ./recipe.txt
# echo 'file techno-outro-new.mp4' >> ./recipe.txt
# echo 'file clouds-outro-new.mp4' >> ./recipe.txt
# echo 'file industrial-outro-new.mp4' >> ./recipe.txt
# echo 'file blobs-outro-new.mp4' >> ./recipe.txt
# echo 'file leaves-outro-new.mp4' >> ./recipe.txt
# echo 'file keyboard-outro-new.mp4' >> ./recipe.txt
# echo 'file circle-outro-new.mp4' >> ./recipe.txt
# echo 'file terrain-outro-new.mp4' >> ./recipe.txt
# echo 'file white-circle-outro-new.mp4' >> ./recipe.txt
# echo 'file mechanics-outro-new.mp4' >> ./recipe.txt
# echo 'file travel-outro-new.mp4' >> ./recipe.txt
# echo 'file forest-outro-new.mp4' >> ./recipe.txt
#
# BAD compatibility (at 48k for audio):
# echo 'file outro-car-48k.mp4' >> ./recipe.txt
# 44k mute:
# echo 'file outro-44k.mp4' >> ./recipe.txt
# BAD compatibility (at 44k for audio):
# echo 'file outro-car-44k.mp4' >> ./recipe.txt
#
# Audio extraction (if needed; removing the video part):
# ffmpeg -i "[FILENAME].webm" -vn -c:a copy "$(basename "[FILENAME]" .webm)".ogg
#
# Quick video clipping, if needed:
# ffmpeg -i Video-input.webm -ss 00:00:00 -to 00:27:14 -c:v copy -c:a copy output.webm
echo ' ===================== Recipe: ==================='
cat ./recipe.txt
echo ' ================================================='
# debugging mode (uncomment the below to make I/O quieter):
# set -x
# set -v
# set -e
# estimate final video size
filesize=$(
awk '
/^file/ {
cmd="stat -c \"%s\" " $2;
cmd | getline s;
close(cmd);
size=size+s
}
END {
print size
}' ./recipe.txt
);
nice ffmpeg -y -progress - -nostats \
-f concat \
-i ./recipe.txt \
-metadata title="$VIDEO_NAME" \
-metadata creator="Techrights" \
-metadata \
license="Creative Commons Attribution-No Derivative Works 4.0" \
-metadata author="Roy Schestowitz" \
-metadata date="$(stat --printf='%y' $VIDEO_FILE.orig.webm \
| cut -d ' ' -f1)" $VIDEO_FILE.webm 2>/dev/null \
| perl -s -n -a -e '
BEGIN {
$/="progress=continue\n"; # input record separator
$cutoff=int($f/3);
print("Start uploading at ",$cutoff,"\n");
}
if (! $skip) {
@size=split(/=/,$F[5]);
print($size[1]," - ");
if ($size[1]>=$cutoff) {
$skip++;
$cmd="sh -c \". ./video-uploads.sh; \
uploadvideo $v &\"";
system($cmd) == 0
or warn("cmd failed\n");
}
}' -- -f=$filesize -v=$VIDEO_FILE
# send a global alert
notify-send \
--app-name=konversation \
-t 3500 -u low 'Video processing and conversion done! Uploading webM file!'
echo ''
md5sum $VIDEO_FILE.webm
echo ''
echo "Video upload (main file)"
uploadvideofast $VIDEO_FILE
echo "Done upload (main file)"
echo ''
echo ''
echo -n 'md5sum '
echo -n $VIDEO_FILE
echo '.webm'
echo "Checksum remotely checked "
checksum $VIDEO_FILE
mv /home/roy/$VIDEO_FILE.mp4 /tmp
notify-send --app-name=konversation -t 3500 -u low 'DONE Uploading'
# Show space taken up by stale MP4 files
du -ch /tmp/*.mp4 | tail -n1
# Enable quick testing below
echo 'Test file by running:'
echo -n 'vlc '
echo -n $VIDEO_FILE
echo '.webm'
trap - EXIT
read -p 'Press Return to play the video' a
mpv $VIDEO_FILE.webm
# For convenience, put the checksum in the system clipboard
md5sum $VIDEO_FILE.webm | cut -f 1 -d " " | xclip -selection clipboard