Skip to content

Instantly share code, notes, and snippets.

@Osse
Created November 27, 2014 13:31
Show Gist options
  • Save Osse/736070bcca3314ca8b0d to your computer and use it in GitHub Desktop.
Save Osse/736070bcca3314ca8b0d to your computer and use it in GitHub Desktop.
list=( ${(f)"$(<vimgor.txt)"} )
for v in $list; do
echo $v
echo "irc.freenode.vimgor *$v" >> ~/.weechat/weechat_fifo_27744
sleep 30
done
#!/usr/bin/env python
# encoding: utf-8
import html
import xml.etree.ElementTree as et
import re
import operator
tree = et.parse('ogg')
root = tree.getroot()
def grabNumber(url):
return re.search('videos/(\d+)', url).group(1)
def sanitise(desc):
desc = desc.strip(' \r\n\t')
desc = html.unescape(desc)
desc = re.sub(r'</?(p|em)>', "", desc)
desc = re.sub(r'</?a( [^>]*)?>', "", desc)
desc = re.sub(r'</?code>', "'", desc)
desc = re.sub(r'[ \n\r]+', ' ', desc)
return desc
factoids = []
for item in root.findall("./channel/item"):
title = item.find("./title").text
print("Processing \"" + title + "\"... ", end="")
enc = item.find("./enclosure")
# Skip non-casts
if enc == None:
print("Not a cast")
continue
else:
print("")
factoid = {}
ep = grabNumber(enc.attrib["url"])
factoid['title'] = title
factoid['ep'] = ep
factoid['desc'] = sanitise(item.find("./description").text)
factoid['url'] = 'http://vimcasts.org/e/' + ep
factoids.append(factoid)
def gen_overview(f, title="", ep="", desc="", url=""):
overview_format = "e%s: %s\n"
f.write(overview_format % (ep, title))
def gen_vimgor(f, title="", ep="", desc="", url=""):
vimgor_format1 = "forget e%s\n"
vimgor_format2 = "e%s is <reply> %s: %s - %s\n"
f.write(vimgor_format1 % ep)
if len(desc) > 350:
print("cuttin")
desc = desc[0:350]
desc = desc[0:desc.rfind(' ')] + "..."
vimgor.write(vimgor_format2 % (ep, title, desc, url))
overview = open('overview.txt', 'w')
vimgor = open('vimgor.txt', 'w')
factoids.reverse()
for f in factoids:
gen_overview(overview, **f)
gen_vimgor(vimgor, **f)
overview.close()
vimgor.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment