rgdsnatch: script to get post data from RedditGetsDrawn and post to artcontroldrawsyou


In [127]:
import os
import random
import requests
import re
import json
import praw

In [128]:
os.chdir('/home/wcmckee/rgd')

In [129]:
r = praw.Reddit(user_agent='rgdsnatch')


Version 2.1.16 of praw is outdated. Version 2.1.17 was released 3 days ago.

In [130]:
r.login('artcontrol', 'zipit123')

In [131]:
usrd = r.get_my_subreddits()

In [132]:
suls = []

In [133]:
for subs in usrd:
    print subs
    suls.append(subs)


todayilearned
blog
science
IAmA
videos
technology
bestof
askscience
books
television
food
photoshopbattles
GetMotivated
trees
programming
listentothis
Documentaries
Art
Android
gameofthrones
Minecraft
comics
skyrim
breakingbad
buildapc

In [134]:
suls


Out[134]:
[Subreddit(display_name='todayilearned'),
 Subreddit(display_name='blog'),
 Subreddit(display_name='science'),
 Subreddit(display_name='IAmA'),
 Subreddit(display_name='videos'),
 Subreddit(display_name='technology'),
 Subreddit(display_name='bestof'),
 Subreddit(display_name='askscience'),
 Subreddit(display_name='books'),
 Subreddit(display_name='television'),
 Subreddit(display_name='food'),
 Subreddit(display_name='photoshopbattles'),
 Subreddit(display_name='GetMotivated'),
 Subreddit(display_name='trees'),
 Subreddit(display_name='programming'),
 Subreddit(display_name='listentothis'),
 Subreddit(display_name='Documentaries'),
 Subreddit(display_name='Art'),
 Subreddit(display_name='Android'),
 Subreddit(display_name='gameofthrones'),
 Subreddit(display_name='Minecraft'),
 Subreddit(display_name='comics'),
 Subreddit(display_name='skyrim'),
 Subreddit(display_name='breakingbad'),
 Subreddit(display_name='buildapc')]

In [135]:
lesuls = len(suls)

ransuz = random.randint(0, lesuls)

thesubraz = suls[ransuz]

In [136]:
suls


Out[136]:
[Subreddit(display_name='todayilearned'),
 Subreddit(display_name='blog'),
 Subreddit(display_name='science'),
 Subreddit(display_name='IAmA'),
 Subreddit(display_name='videos'),
 Subreddit(display_name='technology'),
 Subreddit(display_name='bestof'),
 Subreddit(display_name='askscience'),
 Subreddit(display_name='books'),
 Subreddit(display_name='television'),
 Subreddit(display_name='food'),
 Subreddit(display_name='photoshopbattles'),
 Subreddit(display_name='GetMotivated'),
 Subreddit(display_name='trees'),
 Subreddit(display_name='programming'),
 Subreddit(display_name='listentothis'),
 Subreddit(display_name='Documentaries'),
 Subreddit(display_name='Art'),
 Subreddit(display_name='Android'),
 Subreddit(display_name='gameofthrones'),
 Subreddit(display_name='Minecraft'),
 Subreddit(display_name='comics'),
 Subreddit(display_name='skyrim'),
 Subreddit(display_name='breakingbad'),
 Subreddit(display_name='buildapc')]

In [137]:
print thesubraz


books

In [138]:
rd = r.get_subreddit('gonemild')

In [139]:
rdnewz = rd.get_new()

In [140]:
rdnew = []

In [141]:
rdnew


Out[141]:
[]

In [142]:
for uz in rdnewz:
    #print uz
    rdnew.append(uz)

In [143]:
rdnew


Out[143]:
[<praw.objects.Submission at 0x2c78dd0>,
 <praw.objects.Submission at 0x2c78310>,
 <praw.objects.Submission at 0x2c782d0>,
 <praw.objects.Submission at 0x2c78450>,
 <praw.objects.Submission at 0x2c785d0>,
 <praw.objects.Submission at 0x2c0dcd0>,
 <praw.objects.Submission at 0x2c0de90>,
 <praw.objects.Submission at 0x2c0dbd0>,
 <praw.objects.Submission at 0x2c0ddd0>,
 <praw.objects.Submission at 0x2c0d9d0>,
 <praw.objects.Submission at 0x2c0dc90>,
 <praw.objects.Submission at 0x2c0df10>,
 <praw.objects.Submission at 0x2c78390>,
 <praw.objects.Submission at 0x2c0d950>,
 <praw.objects.Submission at 0x2c0d850>,
 <praw.objects.Submission at 0x2c0dd50>,
 <praw.objects.Submission at 0x2c1d090>,
 <praw.objects.Submission at 0x2c1d190>,
 <praw.objects.Submission at 0x2c1d250>,
 <praw.objects.Submission at 0x2c1d310>,
 <praw.objects.Submission at 0x2c1d3d0>,
 <praw.objects.Submission at 0x2c1d490>,
 <praw.objects.Submission at 0x2c1d590>,
 <praw.objects.Submission at 0x2c1d650>,
 <praw.objects.Submission at 0x2c0d910>]

In [144]:
ransubz = random.randint(0,24)

In [145]:
print ransubz


6

In [146]:
ransev = rdnew[ransubz]

In [147]:
rgdautoz = str(ransev.author)

In [148]:
rgdsubred = str(ransev.subreddit)

In [149]:
sutit = ('[' + rgdsubred + ']')

In [150]:
sutit


Out[150]:
'[GoneMild]'

In [151]:
rgdaqwew = ('xpost[RGD]' + rgdautoz)

In [152]:
rgdaturo = str(ransev.url)

In [153]:
rgdatit = str(ransev.title)

In [154]:
rgdatit


Out[154]:
'Morning light in black and white [f] (xpost from /r/gonewildsmiles)'

In [155]:
#rd.get_top

In [156]:
linkdict = {}

In [157]:
ophtml = open('index.html', 'a')

In [157]:


In [158]:
ady = r.get_subreddit('artcontroldrawsyou')

In [159]:
comrgd =  rgdatit + ' ' + rgdaturo

In [160]:
comrgd


Out[160]:
'Morning light in black and white [f] (xpost from /r/gonewildsmiles) http://imgur.com/4Svcz2W'

In [161]:
import time

In [162]:
loctime = time.localtime()

In [163]:
loctime.tm_mday


Out[163]:
22

In [164]:
loctime.tm_mon


Out[164]:
6

In [165]:
thedat = (str(loctime.tm_mday) + '/' + str(loctime.tm_mon))

In [166]:
thedat


Out[166]:
'22/6'

In [167]:
mixtut = (thedat + sutit + rgdautoz)

In [168]:
loctime


Out[168]:
time.struct_time(tm_year=2014, tm_mon=6, tm_mday=22, tm_hour=4, tm_min=23, tm_sec=18, tm_wday=6, tm_yday=173, tm_isdst=0)

In [169]:
ady.submit(mixtut , (rgdaqwew, comrgd))


Out[169]:
<praw.objects.Submission at 0x2c1dc90>
for newa in rdnew: #rint newa.url print len(newa) htmstr = (str(newa.title) + '') #ophtml.write(htmstr) #ady.submit(('[RGD]' + newa.author), newa.url) print newa.author #print newa.media ophtml.write(htmstr) print newa.selftext print newa.title print newa.url print newa.num_comments linkdict.update({str(newa.author): str(newa.url)})

In [170]:
#print str(newa.title)

In [171]:
import json

In [172]:
newzjson = json.dumps(linkdict)

In [173]:
#newzjson

In [173]:


In [174]:
rmine = r.get_redditor('itwillbemine')

In [175]:
#opest = open('userurl.json', 'r')
#opest.read()
#opest.close()

In [176]:
mincom = rmine.get_comments()

In [177]:
#print mincom

In [178]:
minels = []

In [179]:
dausr = {}

In [180]:
for newa in rdnew:
    #rint newa.url
    #print newa.author
    linkdict.update({str(newa.author): str(newa.url)})

In [181]:
for con in mincom:
    #print con.body
    minels.append(con)
    dausr.update({str(con.id): str(con.body)})


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-181-1b2775fea6e3> in <module>()
----> 1 for con in mincom:
      2     #print con.body
      3     minels.append(con)
      4     dausr.update({str(con.id): str(con.body)})

/usr/local/lib/python2.7/dist-packages/praw/__init__.pyc in get_content(self, url, params, limit, place_holder, root_field, thing_field, after_field, _use_oauth, object_filter)
    469                 self._use_oauth = _use_oauth  # pylint: disable-msg=W0201
    470             try:
--> 471                 page_data = self.request_json(url, params=params)
    472                 if object_filter:
    473                     page_data = page_data[object_filter]

/usr/local/lib/python2.7/dist-packages/praw/decorators.pyc in wrapped(reddit_session, *args, **kwargs)
    159     @wraps(function)
    160     def wrapped(reddit_session, *args, **kwargs):
--> 161         return_value = function(reddit_session, *args, **kwargs)
    162         if isinstance(return_value, dict):
    163             if return_value.get('error') == 304:  # Not modified exception

/usr/local/lib/python2.7/dist-packages/praw/__init__.pyc in request_json(self, url, params, data, as_objects, retry_on_error)
    514         # Request url just needs to be available for the objecter to use
    515         self._request_url = url  # pylint: disable-msg=W0201
--> 516         data = json.loads(response, object_hook=hook)
    517         delattr(self, '_request_url')
    518         # Update the modhash

/usr/lib/python2.7/json/__init__.pyc in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    337     if parse_constant is not None:
    338         kw['parse_constant'] = parse_constant
--> 339     return cls(encoding=encoding, **kw).decode(s)

/usr/lib/python2.7/json/decoder.pyc in decode(self, s, _w)
    363 
    364         """
--> 365         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    366         end = _w(s, end).end()
    367         if end != len(s):

/usr/lib/python2.7/json/decoder.pyc in raw_decode(self, s, idx)
    379         """
    380         try:
--> 381             obj, end = self.scan_once(s, idx)
    382         except StopIteration:
    383             raise ValueError("No JSON object could be decoded")

/usr/local/lib/python2.7/dist-packages/praw/__init__.pyc in _json_reddit_objecter(self, json_data)
    401                 return json_data['json']
    402         else:
--> 403             return object_class.from_api_response(self, json_data['data'])
    404         return json_data
    405 

/usr/local/lib/python2.7/dist-packages/praw/objects.pyc in from_api_response(cls, reddit_session, json_dict)
     56             page = parts[6].split('.', 1)[0]
     57             return cls(reddit_session, subreddit, page, json_dict=json_dict)
---> 58         return cls(reddit_session, json_dict=json_dict)
     59 
     60     def __init__(self, reddit_session, json_dict=None, fetch=True,

/usr/local/lib/python2.7/dist-packages/praw/objects.pyc in __init__(self, reddit_session, json_dict)
    512     def __init__(self, reddit_session, json_dict):
    513         super(Comment, self).__init__(reddit_session, json_dict,
--> 514                                       underscore_names=['replies'])
    515         if self._replies:
    516             self._replies = self._replies['data']['children']

/usr/local/lib/python2.7/dist-packages/praw/objects.pyc in __init__(self, reddit_session, json_dict, fetch, info_url, underscore_names)
     70         self.reddit_session = reddit_session
     71         self._underscore_names = underscore_names
---> 72         self.has_fetched = self._populate(json_dict, fetch)
     73         self.json_dict = (json_dict if reddit_session.config.store_json_result
     74                           is True else None)

/usr/local/lib/python2.7/dist-packages/praw/objects.pyc in _populate(self, json_dict, fetch)
    139             if self._underscore_names and name in self._underscore_names:
    140                 name = '_' + name
--> 141             setattr(self, name, value)
    142         return bool(json_dict) or fetch
    143 

/usr/local/lib/python2.7/dist-packages/praw/objects.pyc in __setattr__(self, name, value)
    100             else:
    101                 value = Redditor(self.reddit_session, value, fetch=False)
--> 102         object.__setattr__(self, name, value)
    103 
    104     def __str__(self):

AttributeError: can't set attribute

In [ ]:
minels

In [ ]:
noizjson = json.dumps(dausr)

In [ ]:
newposts = open('userurl.json', 'a')
newposts.write(newzjson)
print ('file userurl.json updated')
newcomments = open('idcomt.json', 'a')
newcomments.write(noizjson)
print ('user comments updated')
newposts.close()
newcomments.close()

In [ ]:
rdusr = str(con.author)

In [ ]:
minelsz = []

In [ ]:


In [ ]:
#for mina in minels:
    #print mina.body
   # minelsz.append(mina.body)

In [ ]:
#minelsz

In [ ]:
#mina.body

In [ ]: