Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie informacji na temat uzytkownika allegro
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Whisller
Witam,
Klasa do pobierania informacji na temat uzytkownika serwisu aukcyjnego allegro.pl

Możliwości
* Pobranie nazwy użytkownika
* Pobranie daty oraz godziny rejestracji
* Pobranie daty oraz godziny ostatniego logowania
* Pobranie liczby punktow za komentarze
* Pobranie procentowej wartosci za pozytywne komentarze
* Pobranie ilości użytkownikow ktorzy wystawili pozytywne komentarze
* Pobranie ilości użytkownikow ktorzy wystawili negatywne komentarze
* Pobranie ilości komentarzy pozytywnych wystawionych w ostatnich 7/30/wszystkich dniach
* Pobranie ilości komentarzy neutralnych wystawionych w ostatnich 7/30/wszystkich dniach
* Pobranie ilości komentarzy negatywnych wystawionych w ostatnich 7/30/wszystkich dniach
* Sprawdzenie czy użytkownik jest "Super Sprzedawca"
* Sprawdzenie czy uzytkownik dokonal pelnej aktywacji konta

A teraz kod zrodlowy : ]
  1. <?php
  2. /**
  3.  * Klasa pobierajaca informacje o uzytkowniku z serwisu allegro.pl
  4.  *
  5.  * @author Whisller <whisller@gmail.com>
  6.  */
  7.  
  8. class allegroUserInfo
  9. {
  10. /**
  11.  * 'Wczytana' strona uzytkownika 
  12.  *
  13.  * @var string
  14.  */
  15. private $strUser;
  16.  
  17. /**
  18.  * Pobranie strony uzytkownika z serwisu allegro
  19.  *
  20.  * @param int Numer uzytkownika
  21.  */
  22. public function __construct( $intUser ) 
  23. {
  24. $this -> strUser = file_get_contents( 'http://www.allegro.pl/show_user.php?uid='. $intUser );  
  25. }
  26. /**
  27.  * Zwraca nazwe uzytkownika
  28.  *
  29.  * @param void
  30.  * @return string 
  31.  */  
  32. public function UserName()
  33.  {
  34.  preg_match( '#<span class="uname">([a-z0-9\._\- ]+)</span>#i', $this -> strUser, $r );
  35.  return $r[1]; 
  36.  } 
  37.  
  38. /**
  39.  * Liczba punktow uzytkownika
  40.  *
  41.  * @param void
  42.  * @return int
  43.  */  
  44. public function UserPoints()
  45.  {
  46.  preg_match( '#<td class="form1">Punkty za komentarze:</td>\s+<td class="form1 bold">([0-9]+)</td>#', $this -> strUser, $r );
  47.  return $r[1];
  48.  } 
  49.  
  50. /**
  51.  * Procent pozytywnych komentarzy
  52.  *
  53.  * @param void
  54.  * @return int
  55.  */
  56. public function UserPointsPr()
  57.  {
  58.  if ( preg_match( '#<td class="form1 bold">([0-9,]+)%+</td>#', $this -> strUser, $r ) )
  59. {
  60. return $r[1];
  61. }else
  62. {
  63. return '0';
  64. }
  65.  }
  66.  
  67. /**
  68.  * Liczba pozytywnych komentarzy od roznych uzytkownikow
  69.  *
  70.  * @param void
  71.  * @return int
  72.  */  
  73. public function UserAmountPositive()
  74.  {
  75.  preg_match( '#<td class="form1 nowrap">Komentarze pozytywne od:</td>\s+.*<span class="bold">([0-9]+)</span>#', $this -> strUser, $r );
  76.  return $r[1];
  77.  }
  78.  
  79. /**
  80.  * Liczba negatywnych komentarzy od roznych uzytkownikow
  81.  *
  82.  * @param void
  83.  * @return int
  84.  */  
  85. public function UserAmountNegative()
  86.  {
  87.  preg_match( '#<td class="form1">Komentarze negatywne od:</td>\s+.*<span class="bold">([0-9]+)</span>#', $this -> strUser, $r );
  88.  return $r[1];
  89.  } 
  90.  
  91. /**
  92.  * Liczba pozytywnych komentarzy w ciagu ostatnich 7 dni
  93.  *
  94.  * @param void
  95.  * @return string
  96.  */
  97. public function UserAmountPositiveSeven()
  98.  {
  99.  preg_match_all( '#<td class="tocenter pos small">([0-9]+)</td>#', $this -> strUser, $r );
  100.  return $r[1][0];
  101.  }
  102.  
  103. /**
  104.  * Liczba pozytywnylch komentarzy w ciagu ostatnich 30 dni
  105.  *
  106.  * @param void
  107.  * @return string
  108.  */  
  109. public function UserAmountPositiveThirty()
  110.  {
  111.  preg_match_all( '#<td class="tocenter pos small">([0-9]+)</td>#', $this -> strUser, $r );
  112.  return $r[1][1];  
  113.  }
  114.  
  115. /**
  116.  * Liczba wszystkich pozytywnych komentarzy
  117.  *
  118.  * @param void
  119.  * @return string
  120.  */
  121. public function UserAmountPositiveAll()
  122.  {
  123.  preg_match_all( '#<td class="tocenter pos small">([0-9]+)</td>#', $this -> strUser, $r );
  124.  return $r[1][2];  
  125.  }
  126.  
  127. /**
  128.  * Liczba negatywnych komentarzy w ciagu ostatnich 7 dni
  129.  *
  130.  * @param void
  131.  * @return string
  132.  */
  133. public function UserAmountNegativeSeven()
  134.  {
  135.  preg_match_all( '#<td class="tocenter neg small">([0-9]+)</td>#', $this -> strUser, $r );
  136.  return $r[1][0];
  137.  }
  138.  
  139. /**
  140.  * Liczba negatywnych komentarzy w ciagu ostatnich 30 dni
  141.  *
  142.  * @param void
  143.  * @return string
  144.  */
  145. public function UserAmountNegativeThirty()
  146.  {
  147.  preg_match_all( '#<td class="tocenter neg small">([0-9]+)</td>#', $this -> strUser, $r );
  148.  return $r[1][1];  
  149.  }
  150.  
  151. /**
  152.  * Liczba wszystkich negatywnych komentarzy
  153.  *
  154.  * @param void
  155.  * @return string
  156.  */
  157. public function UserAmountNegativeAll()
  158.  {
  159.  preg_match_all( '#<td class="tocenter neg small">([0-9]+)</td>#', $this -> strUser, $r );
  160.  return $r[1][2];  
  161.  }
  162.  
  163. /**
  164.  * Liczba neutralnych komentarzy w ciagu ostatnich 7 dni
  165.  *
  166.  * @param void
  167.  * @return string
  168.  */
  169. public function UserAmountNeutralSeven()
  170.  {
  171.  preg_match_all( '#<td class="tocenter neu small">([0-9]+)</td>#', $this -> strUser, $r );
  172.  return $r[1][0];
  173.  }
  174.  
  175. /**
  176.  * Liczba neutralnych komentarzy w ciagu ostatnich 30 dni
  177.  *
  178.  * @param void
  179.  * @return string
  180.  */
  181. public function UserAmountNeutralThirty()
  182.  {
  183.  preg_match_all( '#<td class="tocenter neu small">([0-9]+)</td>#', $this -> strUser, $r );
  184.  return $r[1][1];  
  185.  }
  186.  
  187. /**
  188.  * Liczba wszystkich neutralnych komentarzy
  189.  *
  190.  * @param void
  191.  * @return string
  192.  */
  193. public function UserAmountNeutralAll()
  194.  {
  195.  preg_match_all( '#<td class="tocenter neu small">([0-9]+)</td>#', $this -> strUser, $r );
  196.  return $r[1][2];  
  197.  }
  198.  
  199. /**
  200.  * Data rejestracji uzytkownika
  201.  *
  202.  * @param void
  203.  * @return string
  204.  */  
  205. public function UserRegisterDate()
  206.  {
  207.  preg_match( '#<td class="form1">Data rejestracji:</td>\s+<td class="form1 nowrap" colspan="3">([0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}) {1,1}#', $this -> strUser, $r );
  208.  return $r[1];
  209.  }  
  210.  
  211. /**
  212.  * Godzina rejestracji uzytkownika
  213.  *
  214.  * @param void
  215.  * @return string
  216.  */
  217. public function UserRegisterTime()
  218.  {
  219.  preg_match( '#<td class="form1">Data rejestracji:</td>\s+<td class="form1 nowrap" colspan="3">.*([0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2})#', $this -> strUser, $r );
  220.  return $r[1];
  221.  }
  222.  
  223. /**
  224.  * Data ostatniego logowania uzytkownika
  225.  *
  226.  * @param void
  227.  * @return string
  228.  */
  229. public function UserLoginDate()
  230.  {
  231.  preg_match( '#<td class="form1">Ostatnie logowanie:</td>\s+<td class="form1 nowrap" colspan="3">([0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}) {1,1}#', $this -> strUser, $r );
  232.  return $r[1];
  233.  }
  234.  
  235. /**
  236.  * Godzina ostatniego logowania uzytkownika
  237.  *
  238.  * @param void
  239.  * @return string
  240. */
  241. public function UserLoginTime()
  242.  {
  243.  preg_match( '#<td class="form1">Ostatnie logowanie:</td>\s+<td class="form1 nowrap" colspan="3">.*([0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2})#', $this -> strUser, $r );
  244.  return $r[1];
  245.  }
  246.  
  247. /**
  248.  * Sprawdzenie czy uzytkownik jest super sprzedawca
  249.  *
  250.  * @param void
  251.  * @return boolean
  252.  */
  253. public function UserDealer()
  254.  {
  255. if ( preg_match( '#<div class="theme">.*supers.gif.*</div>#', $this -> strUser, $r ) )
  256.  {
  257.  return true;
  258.  }else{
  259. return false;
  260. }
  261.  }
  262. /**
  263.  * Sprawdzenie czy uzytkowik przeszedl pelna aktywacje konta
  264.  *
  265.  * @param void
  266.  * @return boolean
  267.  */  
  268. public function NoActivation()
  269.  {
  270.  if ( preg_match( '<img src=/site_images/1/0/no-code.gif border=0>', $this -> strUser, $r ) )
  271. {
  272. return true;
  273. }else
  274. {
  275. return false;
  276. }
  277.  }
  278. }
  279. ?>
sagittariuspl
cudo! muszę to wypróbować i jeżeli to działa to będzie naprawdę fajne narzędzie.
cadavre
Od początku myślałem, że to oparte o AllegroAPI a tu widzę własny kod oparty o preg_matche. Może i kod dobry ale co gdy Allegro wprowadzi kosmetyczne zmiany w kodzie - na przykład zmieni nazwę klasy "theme" na "blabla"? smile.gif
sagittariuspl
w sumie też to sprwdziłem i to nie jest dobre rozwiązanie. załozyłem wątek o WebApi na allegro i będę tam się bawił moim wiaderkiem biggrin.gif muszę tylko poszukać jak użyć nuSOAP i czekam na kod od Allegro
Whisller
Tak niestety przy ewentualnej zmianie kodu strony allegro. Klasa mówiąc ogólnie leży i kwiczy smile.gif Ale jak ktoś chce w łatwy i w miarę szybki sposób pobrać informację to starczy, a i pregi zawsze można zmienić winksmiley.jpg

Pozdrawiam.
altruista
A ja tez uzywam webAPI, obecnie podlaczam to pod quckcart zeby na stronie sklepu byla "zsynchronizowana" informacja o ilosci towary (ten sam towar mozna kupic na allegro i w esklepie). a podstawowy kod moze wygladac tak:


  1. <?php
  2. $client = new SoapClient("http://webapi.allegro.pl/uploader.php?wsdl");
  3. $webApiKey = "1234456;
  4. $verKey = "1234566"; //numer kraju: 1
  5.  
  6. $meesageArr = array(
  7. "user-login" => "user_name",
  8. "user-password" => "xxx",
  9. "country-code" => "1",
  10. "webapi-key" => $webApiKey,
  11. "local-version" => $verKey
  12.  
  13. );
  14.  
  15. $response = $client->__call("doLogin", $meesageArr);
  16.  
  17.  
  18. $arrItemInfo = array();
  19. $arrItemInfo["session-handle"] = $response["session-handle-part"];
  20. $arrItemInfo["items-id-array"] = array("169847604");
  21. $arrItemInfo["get-desc"] = 1;
  22. $arrItemInfo["get-image-url"] = 0;
  23.  
  24. $response = $client->__call("doGetItemsInfo", $arrItemInfo);
  25.  
  26. print "Ilosc towaru: " . ($response['array-item-list-info']['0']->{'item-info'}->{'it-quantity'});
  27. ?>
cezet
Ja też z tego korzystam, jednak - podejrzewam - niektórzy mogą do tego potrzebować biblioteki nuSoap (jeśli nie mają wbudowanej obsługi Soap).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.