def submit_all(): from r2.models import Subdigg, Account, Link, NotFound from r2.lib.media import set_media from r2.lib.db import queries sr = Subdigg._by_name('testmedia') author = Account._by_name('testmedia') links = [] for url in test_urls: try: # delete any existing version of the link l = Link._by_url(url, sr) print "Deleting %s" % l l._deleted = True l._commit() except NotFound: pass l = Link._submit(url, url, author, sr, '0.0.0.0') try: set_media(l) except Exception, e: print e if g.write_query_queue: queries.new_link(l) links.append(l)
def get_subdigg(self): """checks if the current url refers to a subdigg and returns that subdigg object. The cases here are: * the hostname is unset or is g.domain, in which case it looks for /r/XXXX or /diggs. The default in this case is Default. * the hostname is a cname to a known subdigg. On failure to find a subdigg, returns None. """ from pylons import g from r2.models import Subdigg, Sub, NotFound, Default try: if not self.hostname or self.hostname.startswith(g.domain): if self.path.startswith('/r/'): return Subdigg._by_name(self.path.split('/')[2]) elif self.path.startswith('/diggs/'): return Sub else: return Default elif self.hostname: return Subdigg._by_domain(self.hostname) except NotFound: pass return None
def subscribe_to_blog_and_annoucements(filename): import re from time import sleep from r2.models import Account, Subdigg r_blog = Subdigg._by_name("blog") r_announcements = Subdigg._by_name("announcements") contents = file(filename).read() numbers = [ int(s) for s in re.findall("\d+", contents) ] # d = Account._byID(numbers, data=True) # for i, account in enumerate(d.values()): for i, account_id in enumerate(numbers): account = Account._byID(account_id, data=True) for sr in r_blog, r_announcements: if sr.add_subscriber(account): sr._incr("_ups", 1) print ("%d: subscribed %s to %s" % (i, account.name, sr.name)) else: print ("%d: didn't subscribe %s to %s" % (i, account.name, sr.name))