PHP Classes
elePHPant
Icontem

My DeviantArt API: Retrieve information from DeviantArt accounts

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Info   View files View files (25)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings  
2012-03-01 (3 years ago) RSS 2.0 feedNot yet rated by the usersTotal: 140 All time: 7,790 This week: 1,279Up
Version License PHP version Categories  
my-deviantart-api 1BSD License5.3PHP 5, Web services
Description Author  

This package can retrieve information from DeviantArt accounts.

There is a base class that can retrieve DeviantArt account pages and parse them to extract relevant information details.

There are several classes that can retrieve the different types of information associated to an account.

Currently there are classes for extracting the user profile details, favorites, galleries, statistics, site version and deviation pictures.

Picture of inwebo
Name: inwebo <contact>
Classes: 1 package by
Country: France, Metropolitan France, Metropolitan
Age: 33
All time rank: 37898 in France, Metropolitan France, Metropolitan
Week rank: 1576 Up4 in France, Metropolitan France, Metropolitan Up

Details provided by the author  
Voilà une class PHP5 utilisant l'extension DOM pour parser votre compte deviant
art et renvoyer toutes les infos nécessaires (avatar, id, gallerie, deviation).
Rien de bien compliqué mais cela rends bien des services.

Fonctionnement trés simple, je considère qu'une page retournée par deviantart
 est un arbre DOM, qu'il suffira de parser avec des requêtes Xpath pour en
extraire les informations que l'on souhaite. Plus précisément pour l'application
 chaque page ouaib est un objet DOMNode (c'est ce que font toutes les classes
dont le nom commence par dom). Nous pouvons donc requêter ces objets avec des
requêtes XPATH (toutes les classes commancant par deviant).

Chaque résultat de requête est stocké dans deux attributs de classes.

L'attribut NodeList est un objet ... NodeList. C'est cet objet que nous allons
itérer pour trouver toutes les déviations contenues dans le code HTML.

Un second attribut splObjectStorage est un objet splObjectStorage. Qui contient
l'ensemble des objets Deviation trouvés dans une gallerie. Le pourquoi du comment
d'un splObjectStorage plutôt qu'un array :

http://technosophos.com/content/set-objects-php-arrays-vs-splobjectstorage

Averaging this over multiple runs, SplObjectStorage executed both fill and check
 functions twice as fast as the array method presented above. We tried various
permutations of the tests above.

Finalement il suffira d'itérer notre splObjectStorage est d'appliquer un callback
sur chaque objet déviation pour l'afficher.

Il est bien sûr possible de configurer l'affichage en étandant la classe display.
Il y a un exemple un peu plus bas.

! Mise en garde !
J'ai lu la charte d'utilisation et cette classe n'as pas l'air de rentrer en
conflit avec, donc si des anglophones (avertis) pouvaient me confirmer.

Par contre vous DEVEZ utiliser cette class uniquement avec VOTRE COMPTE
deviantart, je n'ai pas écrit cette API dans l'idée de piller le travail des
autres. VOUS êtes responsable de ce que vous faites !

Protips, mettez en CACHE tout ce que vous allez récupèrer, les images et les
 pages HTML. Deviantart se réserve le droit de BANNIR des IP si ils considèrent
(à tort ou à raison) qu'il y a une utilisation frauduleuse du service.

Pour les curieux l'API est disponible sous forme d'archive phar (voir make.php).

N'oubliez pas la dernière version se trouve sur github :
https://github.com/inwebo/My.DeviantArtParser
  Files folder image Files  
File Role Description
Files folder imagecss (1 file)
Files folder imagedoc (1 file)
Files folder imagelib (19 files)
Accessible without login Plain text file autoload.php Aux. Auxiliary script
Accessible without login Plain text file index.php Example Example script
Accessible without login Plain text file make.php Example Example script
Accessible without login Plain text file README Doc. Documentation

  Files folder image Files  /  css  
File Role Description
  Accessible without login Plain text file style.css Data Auxiliary data

  Files folder image Files  /  doc  
File Role Description
  Accessible without login Image file uml.png Data Auxiliary data

  Files folder image Files  /  lib  
File Role Description
  Accessible without login Plain text file class.customdisplay.php Example Example script
  Plain text file class.deviantfavorites.php Class Class source
  Plain text file class.deviantfeatured.php Class Class source
  Plain text file class.deviantgallerieslist.php Class Class source
  Plain text file class.deviantgallery.php Class Class source
  Plain text file class.deviantnewest.php Class Class source
  Plain text file class.deviantparser.php Class Class source
  Plain text file class.deviantprofil.php Class Class source
  Plain text file class.deviantstats.php Class Class source
  Plain text file class.deviantversion.php Class Class source
  Plain text file class.deviation.php Class Class source
  Plain text file class.display.php Class Class source
  Plain text file class.displaygallerieslist.php Class Class source
  Plain text file class.displaygallery.php Class Class source
  Plain text file class.domdeviant.php Class Class source
  Plain text file class.domdeviantgallerieslist.php Class Class source
  Plain text file class.domdeviantgallery.php Class Class source
  Plain text file class.domdeviantprofil.php Class Class source
  Plain text file class.gallery.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%Total:140All time:7,790
 This week:0This week:1,279Up