Find file
c4b46b7 Oct 4, 2016
executable file 160 lines (149 sloc) 7.52 KB
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<title> - rss of twitter user feeds by screenscraping with perl</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="//" rel="stylesheet">
<link href="css/twitrss.css" rel="stylesheet">
<div id="js-version" style="width:10em;right:0;top:50%;padding:5px;background-color:#333;color:#ddd;position:fixed;display:none;text-align:right;z-index:9999">
<p> <strong>Tip</strong>: There is a <a href="">Javascript version</a> for building widgets.</p>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<a class="navbar-brand nav-link" href="#top"></a>
</div> <!-- /.navbar-header -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="#top" class="nav-link">Get Twitter RSS</a></li>
<li><a href="#sponsors" class="nav-link">Sponsors</a></li>
<!--li><a href="#code" class="nav-link">Get Code</a></li-->
<li><a href="#about" class="nav-link">About</a></li>
</div> <!-- /.navbar-collapse -->
</div> <!-- /.container -->
</nav> <!-- /.navbar -->
<div id="top" class="jumbotron">
<div class="container">
<h2>Get your twitter user feed as RSS</h2>
<form action="/twitter_user_to_rss/" method="get">
<label for="screen_name">Twitter User:</label><br />
@<input name="user" id="screen_name" type="text" class="input" maxlength="140" size="20" value="" placeholder="ciderpunx" /> <br />
<label for="replies">With replies?:</label>
<input name="replies" id="replies" type="checkbox" style="margin-left:1.2em" /><br />
<label class="hid" for="submit"> &nbsp; </label>
<input id="fetch" type="submit" value=" Fetch RSS " class="btn btn-primary btn-lg" />
<h2 style="padding-top:2em"><span style="font-weight:900;font-style:normal;font-size:1.8em">OR</span><br /> <br />
<em>Get a twitter "live" search as RSS</em>
<form action="/twitter_search_to_rss/" method="get">
<label for="search_term">Twitter Search:</label><br />
<input name="term" id="search_term" type="text" class="input" maxlength="140" size="20" value="" placeholder="Your search term" /> <br />
<label class="hid" for="submit"> &nbsp; </label><br />
<input id="fetch" type="submit" value=" Fetch Search RSS " class="btn btn-primary btn-lg" />
</div> <!-- /.container -->
</div> <!-- /.jumbotron -->
<div class="container">
<h3 id="sponsors" class="subhead">Sponsors</h3>
<div class="row">
<div class="col-md-8 col-sm-6 benefit">
<!--div class="benefit-ball">
<span class="glyphicon glyphicon-home"></span>
<h3> is free. Thanks Bytemark!</h3>
<p>In September 2015, Bytemark generously offered to host for free on their <a href="">Big V</a> platform. That means that I have been able to drop the cache time, so that feeds update more often and provide a generally more reliable service. </p>
<h3>Traffic stats</h3>
<!--#include virtual="/include/varnishstat"-->
</div> <!-- /.benefit -->
<div class="col-md-4 col-sm-6 benefit">
<a href="">
<div style="background-image:url(/img/bigv.svg);height:200px;width:320px;margin-top:2.2em"> </div>
</div> <!-- /.benefit -->
</div> <!-- /.row -->
</div> <!-- /.container -->
<div class="container-alternate">
<div class="container">
<h3 id="about" class="subhead">About</h3>
<div class="row about">
<div class="col-md-10 col-md-offset-1 text-center">
Way back in the mists of time twitter used to have RSS feeds. It was great and people used them. I even made a
<a href="">twitter RSS getter</a> form for my website so you could locate your feed.
But in June 2013 they killed the RSS feeds. Fuckers.
So, I <a href="">wrote a script</a> that would fetch a twitter search as an RSS feed, which
was a thing I needed to do. Rather than use the api, I just screen scraped the open web for the data.
I realized that the same idea would work for user timelines and so I built a script and modded my twitter
rss getter to use that instead. It proved popular (and killed my server a few times). So I put it on its own
domain name and wrote a frontend. This dear reader is that. And if you are still reading, maybe you should stop.
</div> <!-- /.col-md-10 -->
</div> <!-- /.row -->
</div> <!-- /.container -->
</div> <!-- /.container-alternate -->
<div class="container clearfix">
<p class="pull-left">
Website content &copy; <a href="">Charlie Harvey</a> 2014-2016. Use it under BY-NC-SA if you want. <a href=""> code</a> on GitHub (GPLv2 licence).
<p class="pull-right">Template by <a href="">Coverstrap</a>. Mistakes are all my own.
</div> <!-- /.container -->
<script src="//"></script>
<script src="//"></script>
$(".nav-link").click(function(e) {
var link = $(this);
var href = link.attr("href");
$("html,body").animate({scrollTop: $(href).offset().top - 80}, 500);
/* $(window).scroll(function() {
if ($(this).scrollTop() < 150) {
else {
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
_paq.push(["setCookieDomain", "*"]);
_paq.push(["setDomains", ["*","*"]]);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://";
_paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setSiteId", "6"]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);