[RPi] DeviantArt Picture frame

Trädvy Permalänk
Medlem
Plats
Zion
Registrerad
Apr 2004

[RPi] DeviantArt Picture frame

Så jag hade lite tråkigt denna fredagskväll och kom på att jag hade en RPi liggandes som inte gjorde ett skit, hade även en extra skärm som jag inte har behov av eller direkt vill slänga, en gammal 22" LCD med ok bild från 2008 eller något.

Så jag satt och tittade runt lite på vad man kunde hitta på med dessa och snubblade över ett litet projekt där någon gjort en dynamisk picture frame som tog sina bilder från deviantArt. Kanon tänkte jag och satte igång!

Märkte dock ganska snabbt att denna var halvdan om ens det (Originalet: http://theswitchtolinux.blogspot.se/2012/12/raspberry-pi-dail... ) så bestämde mig för att helt enkelt slänga ut hans gräsliga "scriptande" och göra något eget, speciellt som jag upptäckte att hans var buggat och att deviantArt stödjer MediaRSS med sökning och bläddring exponerat i RSS.

Lite kort vad det betyder är att du kan göra helt egna RSS sökningar i deras system precis som om du gjorde en sökning efter vissa bilder.

Så jag satte mig och klinkade ihop ett litet python script för att hämta hem bilder från deviantArt, det är inte det snyggaste eller snabbaste jag någonsin gjort men testat det en del och hittills fungerar det väldigt stabilt så jag tänkte att jag skulle dela med mig av det om någon får för sig att göra något liknande.

För att köra scriptet behövs följande python moduler

[QUOTE=Python scriptet]

#!/usr/bin/env python import feedparser import urllib import re import sys from BeautifulSoup import BeautifulSoup numberArgs = len(sys.argv) - 1 feedList = [] if numberArgs == 0: feedList.append(feedparser.parse('http://backend.deviantart.com/rss.xml?q=special:dd')) else: n = 0 while n < numberArgs: n = n + 1 appen = sys.argv[n] print 'LOADING IN: ' + sys.argv[n] feedList.append(feedparser.parse(appen)) countFeed = 0 print '' for objects in feedList: count = 0 print 'PROCESSING ' + feedList[countFeed].feed.title for entry in feedList[countFeed]['entries']: passed = 'true' try: linked = feedList[countFeed].entries[count].media_content except: passed = 'false' if passed == 'true': count = count + 1 img_url = str(BeautifulSoup(linked[0]['url'])) if re.search(r'.jpg', img_url): img_name = re.findall(r'(?<=\/).*.jpg', img_url) if re.search(r'.png', img_url): img_name = re.findall(r'(?<=\/).*.png', img_url) img_name = re.sub(r'.*\/', '', img_name[0]) img_loc = 'deviant/' + img_name urllib.urlretrieve(img_url, img_loc) print 'image found' else: print 'no media' countFeed = countFeed + 1

[/QUOTE]

Dold text

Installation:
Skapa ett nytt dokument i din home folder t.ex. deviantArt.py, kopiera scriptet ovan in i filen och spara.
Gör scriptet körbart med chmod +x deviantArt.py

Ta..da installerat.

Använding:
Scriptet har deviantArt Daily Deviations som standard så om du bara kör scriptet med

./deviantArt.py

kommer den automatiskt dra ner de bilderna och läga dem i en mapp som heter deviant.

Scriptet kan även hantera egna RSS byggen från deviantArt, lite mer info om hur de fungerar finns här https://www.deviantart.com/developers/rss
när du sedan byggt det / de rss feeds du vill köra från deviantArt, t.ex. om du vill ha från en speciell användare eller bara saker med grodor på osv så sedan är det bara köra scriptet på detta sättet

sätt rss adresserna inom ' ' eller '' ", det finns ingen begränsning på hur många rss feed du kan använda det är bara slänga på dem, scriptet kan sedan smidigt kombineras med simpla bash script om man vill rensa ur sin mapp eller liknande, hur du sedan visar bilderna med din RPi går att läsa om i Original guiden.

Några frågor så är det bara att skriva, ska försöka lägga upp lite mer info och bilder på hur jag slitit ur panelen på LCD skärmen och när jag ev gör en snyggare ram till den m.m. om intresse finns.

[ i5-6600K @ 4.7Ghz || Corsair H110 GTX || 16GB DDR4 || ASUS Z170 Pro Gaming || Asus ROG 1080 Strix @ 2100+/11Ghz+ ]
Unigine Superposition 1080p; 17487 @ Medium; 4594 @ Extreme
"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Trädvy Permalänk
Medlem
Plats
Inglewood
Registrerad
Aug 2005

Dumma dig, nu blev jag sugen på att köpa en till RPI och bygga en "digital fotoram" åt päronen

WS: 8700K 4.8ghz - 32GB - 1.5TB SSD - 15TB HDD - GTX 1070 8GB - 40" 3840x2160 - W10 Pro
LAPTOP: Lenovo ThinkPad X131e - 12GB - 120GB SSD - W10
NAS: HP MicroServer Gen8 - 32TB
Mobil: OnePlus 3

Trädvy Permalänk
Medlem
Plats
Zion
Registrerad
Apr 2004

Mjo, håller på att tweak lite, märkt att iaf på deviantArt är det även bäst att rotera 90 gradet och köra 1080x1920 istället, måste vara försöka sätta ihop skiten lite snyggt, köpa en trådlös dongle till den och ska även se om jag inte kan haxxa ihop någon lösning för elen så jag bara behöver en elsladd och inget mer. Tror jag har en 5V regulator och lite annat skit redan, det är även ljud på skärmen så vore ju nice om man kunde lägga in en fjärrstyrd internetradio.

[ i5-6600K @ 4.7Ghz || Corsair H110 GTX || 16GB DDR4 || ASUS Z170 Pro Gaming || Asus ROG 1080 Strix @ 2100+/11Ghz+ ]
Unigine Superposition 1080p; 17487 @ Medium; 4594 @ Extreme
"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Trädvy Permalänk
Medlem
Plats
Inglewood
Registrerad
Aug 2005

Det vore nice om man kunde knåpa ihop en enhet med en skärm och en RPI som hämtar bilder från tex dropbox eller liknande molnsystem som man kan styra med en android-telefon för att välja olika kataloger att hämta bilder ifrån.

WS: 8700K 4.8ghz - 32GB - 1.5TB SSD - 15TB HDD - GTX 1070 8GB - 40" 3840x2160 - W10 Pro
LAPTOP: Lenovo ThinkPad X131e - 12GB - 120GB SSD - W10
NAS: HP MicroServer Gen8 - 32TB
Mobil: OnePlus 3

Trädvy Permalänk
Medlem
Plats
Zion
Registrerad
Apr 2004

Borde inte vara så svårt att fixa, tror det jobbigaste är om du vill ha en app i mobilen som fungerar bra men fullt möjligt även med begränsade programmeringskunskaper skulle jag tro bara man läser runt på nätet.

[ i5-6600K @ 4.7Ghz || Corsair H110 GTX || 16GB DDR4 || ASUS Z170 Pro Gaming || Asus ROG 1080 Strix @ 2100+/11Ghz+ ]
Unigine Superposition 1080p; 17487 @ Medium; 4594 @ Extreme
"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood