gifey

Downloads gifs based on a keyword from gifphy to a folder and serve them via a web server.

Find keywords from where?

Creative Commons Keywords - add the gif back into the posts.

Intergrate Nikola. Start saving the gif files in galleries folder. Why doesn't galleries folder render gif files?

Create nikola post that has the title (keyword) and post contents is the gif url (galleries - keyword)


In [1]:
import os

In [6]:
import requests
import json
import shutil
import dominate
from time import gmtime, strftime

import getpass

from walkdir import filtered_walk, dir_paths, all_paths, file_paths

In [7]:
getusr = getpass.getuser()

In [8]:
getusr


Out[8]:
'wcmckee'

In [ ]:


In [3]:
keyword = input('Keyword: ')


Keyword: time

In [4]:
from dominate.tags import *

In [10]:
gifdi = os.listdir('/home/' + getusr + '/gify/')


---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-10-7c15a6fe74ce> in <module>()
----> 1 gifdi = os.listdir('/home/' + getusr + '/gify/')

FileNotFoundError: [Errno 2] No such file or directory: '/home/wcmckee/gify/'

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [6]:
keywddir = ('/home/wcmckee/Downloads/gify/site/galleries/' + keyword)

In [ ]:


In [7]:
if os.path.isdir(keywddir) == True:
    print ('its true')
else:
    print ('its false')
    os.mkdir(keywddir)


its false

In [8]:
opwritj = requests.get('http://api.giphy.com/v1/gifs/search?q=' + keyword + '&api_key=dc6zaTOxFJmzC')

In [ ]:


In [9]:
wrijrd = opwritj.text

In [10]:
jswri = json.loads(wrijrd)

In [11]:
jswln = len(jswri['data'])

In [12]:
jswln


Out[12]:
3

In [13]:
for jsw in range(0, jswln):
    if '.gif' in jswri['data'][jsw]['images']['downsized']['url']:
        print(jswri['data'][jsw]['images']['downsized']['url'])
        response = requests.get((jswri['data'][jsw]['images']['downsized']['url']), stream=True)
        with open(keywddir + '/' + str(jsw) + '.gif', 'wb') as out_file:
            shutil.copyfileobj(response.raw, out_file)
            del response


http://media2.giphy.com/media/FhcCuMMXID8rK/giphy.gif
http://media4.giphy.com/media/r6sKG1QPaHXDW/giphy.gif
http://media0.giphy.com/media/LxRKWc8jFybvO/giphy.gif

In [ ]:


In [ ]:


In [14]:
gifdi = os.listdir('/home/wcmckee/Downloads/gify/')

In [15]:
gifdi


Out[15]:
['7.gif',
 'hobbit8.gif',
 '15.gif',
 '5.gif',
 '11.gif',
 'hobbit23.gif',
 'hobbit22.gif',
 'hobbit4.gif',
 'hobbit20.gif',
 '12.gif',
 '6.gif',
 '3.gif',
 'hobbit17.gif',
 '19.gif',
 'hobbit1.gif',
 'hobbit',
 '16.gif',
 'site',
 '9.gif',
 '0.gif',
 '8.gif',
 'hobbit11.gif',
 'hobbit21.gif',
 '4.gif',
 '23.gif',
 'hobbit15.gif',
 'hobbit5.gif',
 'hobbit9.gif',
 'hobbit7.gif',
 '13.gif',
 'hobbit10.gif',
 'hobbit3.gif',
 'hobbit18.gif',
 '17.gif',
 'hobbit16.gif',
 'index.html',
 'hobbit19.gif',
 'hobbit13.gif',
 'hobbit0.gif',
 '2.gif',
 'linux',
 '22.gif',
 'hobbit12.gif',
 'hobbit6.gif',
 'hobbit14.gif',
 '1.gif',
 'hobbit2.gif',
 'hobbit24.gif',
 '20.gif',
 '24.gif',
 '21.gif',
 '18.gif',
 '10.gif',
 'disney',
 '14.gif']

In [16]:
keyword


Out[16]:
'newzealand'

In [17]:
posfild = ('/home/wcmckee/Downloads/gify/site/posts/')

In [18]:
#galdir = ('galleries/' + keyword + '/' +)

In [19]:
rsmak = open(posfild + keyword + '.rst', 'w')

In [20]:
os.listdir(keywddir)


Out[20]:
['0.gif', '2.gif', '1.gif']

In [21]:
for oslid in os.listdir(keywddir):
    rsmak.write('.. image:: ' + '/galleries/' + keyword + '/' + oslid + '\n')

In [22]:
rsmak.close()

In [ ]:


In [ ]:


In [23]:
print(os.listdir(keywddir))


['0.gif', '2.gif', '1.gif']

In [ ]:


In [ ]:


In [ ]:


In [24]:
doc = dominate.document(title='gify')

with doc.head:
    link(rel='stylesheet', href='style.css')
    script(type ='text/javascript', src='script.js')
    #str(str2)
    
    with div():
        attr(cls='header')
        h1('Gify')
        p(img('imgs/logo.svg', src='imgs/logo.svg'))
        #p(img('imgs/15/01/02/ReptileLover82-reference.png', src= 'imgs/15/01/02/ReptileLover82-reference.png'))
        h1('Updated ', strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()))
        #p(panz)
    
    

with doc:
    with div(id='body').add(ol()):
        for rdz in gifdi:
            #h1(rdz.title)
            #a(rdz.url)
            #p(img(rdz, src='%s' % rdz))
            #print rdz
            p(img(rdz, src = rdz))
            p(rdz)


                
            #print rdz.url
            #if '.jpg' in rdz.url:
            #    img(rdz.urlz)
            #else:
            #    a(rdz.urlz)
            #h1(str(rdz.author))
            
            #li(img(i.lower(), src='%s' % i))

    with div():
        attr(cls='body')
        p('GetsDrawn is open source')
        a('https://github.com/getsdrawn/getsdrawndotcom')
        a('https://reddit.com/r/redditgetsdrawn')

#print doc

In [25]:
print(doc)


<!DOCTYPE html>
<html>
  <head>
    <title>gify</title>
    <link href="style.css" rel="stylesheet"><script src="script.js" type="text/javascript"></script>
    <div class="header">
      <h1>Gify</h1>
      <p>
        <img src="imgs/logo.svg">
      </p>
      <h1>Updated Sat, 19 Dec 2015 04:22:46 +0000</h1>
    </div>
  </head>
  <body>
    <div id="body">
      <ol>
        <p>
          <img src="7.gif">
        </p>
        <p>7.gif</p>
        <p>
          <img src="hobbit8.gif">
        </p>
        <p>hobbit8.gif</p>
        <p>
          <img src="15.gif">
        </p>
        <p>15.gif</p>
        <p>
          <img src="5.gif">
        </p>
        <p>5.gif</p>
        <p>
          <img src="11.gif">
        </p>
        <p>11.gif</p>
        <p>
          <img src="hobbit23.gif">
        </p>
        <p>hobbit23.gif</p>
        <p>
          <img src="hobbit22.gif">
        </p>
        <p>hobbit22.gif</p>
        <p>
          <img src="hobbit4.gif">
        </p>
        <p>hobbit4.gif</p>
        <p>
          <img src="hobbit20.gif">
        </p>
        <p>hobbit20.gif</p>
        <p>
          <img src="12.gif">
        </p>
        <p>12.gif</p>
        <p>
          <img src="6.gif">
        </p>
        <p>6.gif</p>
        <p>
          <img src="3.gif">
        </p>
        <p>3.gif</p>
        <p>
          <img src="hobbit17.gif">
        </p>
        <p>hobbit17.gif</p>
        <p>
          <img src="19.gif">
        </p>
        <p>19.gif</p>
        <p>
          <img src="hobbit1.gif">
        </p>
        <p>hobbit1.gif</p>
        <p>
          <img src="hobbit">
        </p>
        <p>hobbit</p>
        <p>
          <img src="16.gif">
        </p>
        <p>16.gif</p>
        <p>
          <img src="site">
        </p>
        <p>site</p>
        <p>
          <img src="9.gif">
        </p>
        <p>9.gif</p>
        <p>
          <img src="0.gif">
        </p>
        <p>0.gif</p>
        <p>
          <img src="8.gif">
        </p>
        <p>8.gif</p>
        <p>
          <img src="hobbit11.gif">
        </p>
        <p>hobbit11.gif</p>
        <p>
          <img src="hobbit21.gif">
        </p>
        <p>hobbit21.gif</p>
        <p>
          <img src="4.gif">
        </p>
        <p>4.gif</p>
        <p>
          <img src="23.gif">
        </p>
        <p>23.gif</p>
        <p>
          <img src="hobbit15.gif">
        </p>
        <p>hobbit15.gif</p>
        <p>
          <img src="hobbit5.gif">
        </p>
        <p>hobbit5.gif</p>
        <p>
          <img src="hobbit9.gif">
        </p>
        <p>hobbit9.gif</p>
        <p>
          <img src="hobbit7.gif">
        </p>
        <p>hobbit7.gif</p>
        <p>
          <img src="13.gif">
        </p>
        <p>13.gif</p>
        <p>
          <img src="hobbit10.gif">
        </p>
        <p>hobbit10.gif</p>
        <p>
          <img src="hobbit3.gif">
        </p>
        <p>hobbit3.gif</p>
        <p>
          <img src="hobbit18.gif">
        </p>
        <p>hobbit18.gif</p>
        <p>
          <img src="17.gif">
        </p>
        <p>17.gif</p>
        <p>
          <img src="hobbit16.gif">
        </p>
        <p>hobbit16.gif</p>
        <p>
          <img src="index.html">
        </p>
        <p>index.html</p>
        <p>
          <img src="hobbit19.gif">
        </p>
        <p>hobbit19.gif</p>
        <p>
          <img src="hobbit13.gif">
        </p>
        <p>hobbit13.gif</p>
        <p>
          <img src="hobbit0.gif">
        </p>
        <p>hobbit0.gif</p>
        <p>
          <img src="2.gif">
        </p>
        <p>2.gif</p>
        <p>
          <img src="linux">
        </p>
        <p>linux</p>
        <p>
          <img src="22.gif">
        </p>
        <p>22.gif</p>
        <p>
          <img src="hobbit12.gif">
        </p>
        <p>hobbit12.gif</p>
        <p>
          <img src="hobbit6.gif">
        </p>
        <p>hobbit6.gif</p>
        <p>
          <img src="hobbit14.gif">
        </p>
        <p>hobbit14.gif</p>
        <p>
          <img src="1.gif">
        </p>
        <p>1.gif</p>
        <p>
          <img src="hobbit2.gif">
        </p>
        <p>hobbit2.gif</p>
        <p>
          <img src="hobbit24.gif">
        </p>
        <p>hobbit24.gif</p>
        <p>
          <img src="20.gif">
        </p>
        <p>20.gif</p>
        <p>
          <img src="24.gif">
        </p>
        <p>24.gif</p>
        <p>
          <img src="21.gif">
        </p>
        <p>21.gif</p>
        <p>
          <img src="18.gif">
        </p>
        <p>18.gif</p>
        <p>
          <img src="10.gif">
        </p>
        <p>10.gif</p>
        <p>
          <img src="disney">
        </p>
        <p>disney</p>
        <p>
          <img src="14.gif">
        </p>
        <p>14.gif</p>
      </ol>
    </div>
    <div class="body">
      <p>GetsDrawn is open source</p>
      <a>https://github.com/getsdrawn/getsdrawndotcom</a>
      <a>https://reddit.com/r/redditgetsdrawn</a>
    </div>
  </body>
</html>

In [26]:
savht = open('/home/wcmckee/Downloads/gify/index.html', 'w')

In [27]:
savht.write(str(doc))


Out[27]:
5035

In [28]:
savht.close()

In [ ]:


In [ ]:


In [ ]:


In [ ]: