This page permanently redirects to gemini://gemini.techrights.org/git/tr-git/Desktop-Utils/.
This page presents code associated with the module/unit named above.
=> Summary of changes
=> Back to Git index
=> Licence (AGPLv3)
# -*- 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 ("
", end = '') print(content) print ("
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
# 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/'
watch -n 7 --color ./view_irc-news.sh
grep "date" 09.html | sort -u | sed -e "s/a hre/li>/<\/a><\/h5><\/li>/" >> feedoutline.html
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
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
# 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
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
#!/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
#!/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 /\s*(.*?)\s*<\/title/si') echo -n ' ' >> ~/clip.html \ && echo -n $TITLE >> ~/clip.html \ && echo -n '
' >> ~/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
#!/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
python3 ./feedlist.py > feedlist2.html
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## [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
# !/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 /\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 ' ' >> ~/clip.html \ && echo -n $TITLE >> ~/clip.html \ && echo '
' >> ~/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 Tux Machines 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 /• 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 '> ~/tux-text.txt # echo 'width="" height="" alt="" /> ' \ # >> ~/tux-text.txt echo "" >> ~/tux-text.txt echo '
' >> ~/tux-text.txt echo "" >> ~/tux-text.txt echo -n '> ~/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' >> ~/tux-text.txt cat ~/tux-text.txt | xclip
# !/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
# !/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 "posted $(date '+%A, %B %d, %Y at %T')
# !/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 '//' \ -e 's|||' \ -e 's/ |" />|' \ | 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 /\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 ' ' >> ~/clip.html && echo -n $TITLE >> ~/clip.html && echo -n '
' >> ~/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
tail -F --retry /var/log/mumble-server/mumble-server.log
# 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
# !/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/ //" -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 /\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 ' ' >> ~/clip.html && echo -n $TITLE >> ~/clip.html && echo -n '
' >> ~/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
"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
cd ~/Git-TM/tuxmachines.org/tuxmachines.org/ && git show && cd ~/Git && git show
#!/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 "\
> ${documentroot}/videos/index-body.html
date -r $line.webm -u \
>> ${documentroot}/videos/index-body.html
echo "\" />" \
>> ${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
#!/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///' | 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/ //' | 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 / \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 '/> $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
#!/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(); }'
# 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 ]
awk '!seen[$0]++' RSS.html | sed 's/█████ http/\n\n\n\n█████ http/' >> RSS2.html
# 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
rsstail -u https://joindiaspora.com/public/schestowitz.atom -d -1 | grep -v 'Title:' | html2text -width 1000 | sed 's/'Description:'/➬/'
#!/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///;' ~/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///;' \ # 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//"" ☛\1/' \ > ~/Desktop/Text_Workspace/images/timeline.html && \ sed -Ee 's|| |' \ -e 's|| |' \ ~/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/\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/
/\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/\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/
/\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// /' ~/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
#!/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
watch -t -n 620 --color 'tail -n200 remote-status.txt | \ uniq && echo " ____________" \ && echo -n " " && \ date +"%F" && \ echo " ▔▔▔▔▔▔▔▔▔▔▔▔"'
#!/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
watch -n 7 --color ./view_irc.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 "Video download link | md5sum
" && echo "$VIDEO_NAME" && 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 "Summary: "
echo "" && echo ""
echo "T2"
echo ""
echo "" && echo ""
echo "█"
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
=> Back to main index This content has been proxied by September (ba2dc).Proxy Information
text/gemini;lang=en-GB