[RPi] DeviantArt Picture frame

Permalänk
Medlem

[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.

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Snusfri

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

Visa signatur

WS: i9 13900K - 128GB RAM - 6.5TB SSD - RTX 3090 24GB - LG C2 42" - W11 Pro
LAPTOP 1: Lenovo Gaming 3 - 8GB RAM - 512GB SSD - GTX 1650
LAPTOP 2: Acer Swift 3 - 8GB RAM - 512GB SSD
SERVER: i5 10400F - 64GB RAM - 44TB HDD
NALLE: Pixel 7 Pro

Permalänk
Medlem

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.

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Snusfri

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.

Visa signatur

WS: i9 13900K - 128GB RAM - 6.5TB SSD - RTX 3090 24GB - LG C2 42" - W11 Pro
LAPTOP 1: Lenovo Gaming 3 - 8GB RAM - 512GB SSD - GTX 1650
LAPTOP 2: Acer Swift 3 - 8GB RAM - 512GB SSD
SERVER: i5 10400F - 64GB RAM - 44TB HDD
NALLE: Pixel 7 Pro

Permalänk
Medlem

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.

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood