API Jeedom Market / Scraping

Bonjour,

J’aimerais bien arriver à récupérer des informations du Market directement sur mon Jeedom.
L’idée est d’être notifier lors d’une vente ou d’une installation et ne pas devoir rafraîchir mon compte toutes les 2 heures.

Deux solutions me viennent à l’esprit: une API du market de Jeedom ou du Scraping.

L’un de vous aurait connaissance d’une API existante ?
L’un de vous se serait déjà penché sur le sujet ?

Merci pour la lecture

salut hbe,

j’utilise un script python/beautifulsoup pour aller chercher les info sur la page :

#! /usr/bin/env python3
import requests
import re
import json
from sys import argv

from bs4 import BeautifulSoup

res = requests.get(argv[1])

soupe=BeautifulSoup(res.content, "html.parser")
datas={}
datas['result']=soupe.find(text = re.compile('.*Installation.*')).parent.parent.find(class_='infoInfo').text.strip()

print(json.dumps(datas))

pour le nbre d’install, que j’appelle dans un bloc code ds un scenario avec en arguments l’adresse du plugin

je vais également chercher d’autres infos par :

 tt=soupe2.findAll("img", {"class" : "img-responsive"})
    if tt :
        path =tt[0]["src"]
        plugin["icon"]=os.path.basename(path)
    tt=soupe2.find(text = re.compile('.*Développeur.*')).parent.parent.find(class_='infoInfo')
    if tt:
        plugin["dev"]=tt.text.strip()
    tt=soupe2.find(text = re.compile('.*Installation.*')).parent.parent.find(class_='infoInfo')
    if tt:
        plugin["install"]=tt.text.strip()
    tt=soupe2.find(text = re.compile('.*Prix.*')).parent.parent.find(class_='infoInfo')
    if tt:
        plugin["prix"]=tt.text.strip()
1 « J'aime »

Merci !
Je vais essayer de mettre cela en place !

Hello,

Sinon il y a une api sur le Market,

Mais il va falloir que je cherche pour te la retrouvé.

Cordialement
Thibaut

ça serait le must !
Ca me permettrait de mettre un plugin a disposition des autres devs.

Bien à toi

Hello,

J’ai retrouvé les information que j’ai eux, ce sont des information qui m’on été donner en privé et qui se limite a une partie du market, je regarde si cela peux te permettre de faire un truc, mais il y a peux de chance.

PS : C’est une api que je me sert pour valider le premium de jeemate

Cordialement
Thibaut

tu parles pas de ces infos là !?
https://community.jeedom.com/t/verification-license-plugin/44635/10?u=tomitomas

1 « J'aime »

Voilà qui semble très intéressant.
Tu peux accéder à quoi avec ça ?

je ne savais pas :slight_smile:

je viens tout juste de faire un test, car je me posais la même question (initial) que toi.
Donc j’espérais pouvoir récupérer des infos de l’onglet Mes développements sur mon compte market, et du coup savoir à quel moment ont été fait les derniers achats mais non … :-/
On recoit bcp d’infos sur le plugin, mais juste le nb d’achat, pas plus d’info sur cette partie.
Ya surement une autre api a appeler !?

je te laisse tester :

require_once dirname(__FILE__) . '/../repo/market.repo.php';

$params = array(
    'username' => config::byKey('market::username'),
    'password' => repo_market::getPassword(),
    'password_type' => 'sha1',
    'jeedomversion' => jeedom::version(),
    'logicalId' => 'XXXXX',   /// <<<===== mettre l'id de ton plugin
);

$jsonrpc = new jsonrpcClient(config::byKey('market::address') . '/core/api/api.php', '', $params);
$jsonrpc->setCb_class('repo_market');
$jsonrpc->setCb_function('postJsonRpc');
if (config::byKey('market::no_ssl_verify') == 1) {
    $jsonrpc->setNoSslCheck(true);
}
if ($jsonrpc->sendRequest('market::byLogicalId')) {
    $data =  $jsonrpc->getResult();
    $scenario->setLog('voici les info : ' . json_encode($data));
}
$scenario->setLog('end !');

2 « J'aime »

Oui je vais tester ça !
En soit si on peut récupérer le nombre d’achat ça me va. Je peux générer des notifications a partir de la.
Si j’associe ça a un CRON cadencé à 30 minutes je peux comparer pour savoir combien je fait de ventes pour chaque plugins.

apparemment tu peux aussi utiliser

if ($jsonrpc->sendRequest('market::byAuthor')) {

pour récupérer les infos de tous tes plugins.

moi c’est cette partie que j’aimerais bien récupérer : (j’imagine que c’était ta demande initiale ??)

@Thibaut_T tu sais si c’est possible ?
@Salvialf a peut etre des infos sinon ?

2 « J'aime »

Bonjour,

Cette partie n’est pas dans l’api.

Par contre que chercher vous à faire au final ? Car si on peux afficher d’autre chose sur notre page market on le fera.

Je répond pour mon cas personnel.
L’idée serait pouvoir de récupérer via une API (json RPC c’est très bien):
Par plugin et par période:

  • le nombre de plugin vendu
  • la commission de Jeedom
  • le reste au développeur
1 « J'aime »

Salut @Alexandre

Besoin de rien de plus en terme d affichage sur les pages market, merci.

Par contre, comme @hbe, c est plutot d avoir la possibilité de récupérer les infos affichées sur cette page via une API