Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 16 bis 30 von 31

Thema: share-links.biz: Link zum Statusimage bekommen

  1. #16
    Orakel von Delphi Avatar von 1stAid
    Registriert
    Dec 2015
    Beiträge
    267
    Gefällt mir!
    86
    Du gefällst: 226
    in Delphi.. ihr könnt es euch ja übersetzen
    Spoiler ausklappen
    Code:
    var
      Daten : TIdMultiPartFormDataStream;
      s1,s2,UrlString : string;
      Http : TIdHttp ;
      match: TMatch;
      sList: TStringList;
    begin
    UrlString:= AurlString;
    UrlString:= StringReplace(UrlString,'http://share-links.biz/_','',[rfIgnoreCase]);
    
    Result:= False;
      Http := TIdHttp.Create(nil);
      try
        Http.HandleRedirects := True;
        Http.RedirectMaximum := 5;
        Http.CookieManager := idckmngr1;
        Http.AllowCookies:=True;
        HTTP.Request.UserAgent := 'Opera/9.80 (Windows NT 6.1; U; de) Presto/2.5.22 Version/10.51' ;
        HTTP.Request.Accept := 'text/html, */*';
        sList:= TStringList.Create;
        try
        sList.Add('user' + aEinstellungen[22]);
        sList.Add('pass' + aEinstellungen[23]);
          try
            s1:=Http.Post('http://share-links.biz/login',sList);
           except
           mmo1.Lines.Add('fehler in 1');
           Exit;
          end;
          finally
        sList.Free;
        end;
    
        try
          s2:=Http.Get('http://share-links.biz/manage?search=' + UrlString);
          if TRegEx.IsMatch(s2,'name\=.chkFolder\[\]. value\=.[\d]*\"') then
             begin
              match := TRegEx.Match(s2, 'name\=.chkFolder\[\]. value\=.[\d]*\"');
              match := TRegEx.Match(match.Value, '[\d]*');
             end;
    
        except
          mmo1.Lines.Add('fehler in 2');
          Exit;
        end;
        sList:= TStringList.Create;
        try
          sList.Add('op=stimg_png');
          sList.Add('chkFolder[]=' + match.Value)  ;
    
    
          try
            s2:=Http.Post('http://share-links.biz/manage?search=' + UrlString,Daten);
            match := TRegEx.Match(s2, 'http\:\/\/stats\.share\-links\.biz\/[\w]*\.png');
            Result:= True;
          except
           on e: Exception do
            begin
              mmo1.Lines.Add(e.message);
              mmo1.Lines.Add('fehler in 3');
              Exit;
            end;
          end;
        if TRegEx.IsMatch(s2,'Es wurden keine geschützen Ordner gefunden') then
          begin
           mmo1.Lines.Add('Fehler durch ShareLinks kein Ordner gefunden') ;
           if TRegEx.IsMatch(s2,'Sie sind eingeloggt als') then mmo1.Lines.Add('Loggin scheint OK')
           else mmo1.Lines.Add('Loggin ist eventuell falsch') ;
          end;
         finally
         sList.Free;
        end;
      finally
        Http.Free;
      end;
      aResultPic:= match.Value;


    Ui is der Code alt ... aber er tut seit Jahren treu seinen Dienst, auch wenn ich doch heute (etwas) anders schreiben würde ......
    Geändert von 1stAid (26.05.2016 um 17:51 Uhr)

  2. Diesen Mitgliedern gefällt dieser Beitrag:


  3. #17
    Senior Avatar von Uranjitsu
    Registriert
    May 2016
    Beiträge
    210
    Gefällt mir!
    223
    Du gefällst: 158
    Jetzt muss das nur in PHP übersetzt werden (Das kann ich leider nicht)
    Aber danke für die Freigabe !

    Wenn das jemand in PHP übersetzen kann, würde ich das im SSBG verbauen.
    Geändert von Uranjitsu (26.05.2016 um 17:58 Uhr)

  4. #18
    Ultimatives Spiderschwein Avatar von jbs
    Registriert
    Jun 2015
    Beiträge
    209
    Gefällt mir!
    151
    Du gefällst: 195
    Der Code von 1stAid macht eigentlich nix anderes, wie die ID des Links zu extrahieren, dann bei Share-Online einloggen und im Login Bereich eine Statusprüfung mit der ID abzusenden. Dann vom Ergebnis den Bildnamen auslesen und entsprechend on oder off zurückgeben.

  5. Diesen Mitgliedern gefällt dieser Beitrag:


  6. #19
    Orakel von Delphi Avatar von 1stAid
    Registriert
    Dec 2015
    Beiträge
    267
    Gefällt mir!
    86
    Du gefällst: 226
    Ist ja auch nix anderes als auf der Webseite
    Die Ordnerid wird auf der Webseite gesucht, da die Unique sind, bleibt 1 Ordner der wird auf der Webseite gecheckt. Dann die Webseite nach dem .png unten geparst.
    Der Code funktioniert seit 4-5 Jahren ohne Probleme.

  7. Diesen Mitgliedern gefällt dieser Beitrag:


  8. #20
    Senior Avatar von Uranjitsu
    Registriert
    May 2016
    Beiträge
    210
    Gefällt mir!
    223
    Du gefällst: 158
    Der Login wird überwunden und nur der gesuchte Ordner ausgegeben.
    Aber
    Code:
    &chkFolder[]=XXXX&op=stimg_png&submit=los
    zeigt keine Funktion.... und zeigt dementsprechend den generierten Code nicht an.




    PHP-Code:
     <?php


    $username 
    'xxx';
    $password 'xxx';
    $loginUrl 'http://share-links.biz/login';
    //$sl_unique_link = str_replace("http://share-links.biz/", "", "http://share-links.biz/_ird5u7o6soto");
    $sl_search_file "9512058699fc04289f4f84e7f";
     
    //init curl
    $ch curl_init();
     
    //Set the URL to work with
    curl_setopt($chCURLOPT_URL$loginUrl);
     
    // ENABLE HTTP POST
    curl_setopt($chCURLOPT_POST1);

    curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
     
    //Set the post parameters
    curl_setopt($chCURLOPT_POSTFIELDS'remember_me=1&user='.$username.'&pass='.$password.'&submit=Login');
     
    //Handle cookies for the login
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');

     
    //Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
    //not to print out the results of its query.
    //Instead, it will return the results as a string return value
    //from curl_exec() instead of the usual true/false.
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
     
    //execute the request (the login)
    $store curl_exec($ch);
     
    //the login is now done and you can continue to get the
    //protected content.
     
    //set the URL to the protected file
    curl_setopt($chCURLOPT_URL'http://share-links.biz/manage?search='.$sl_search_file.'&chkFolder[]=XXXX&op=stimg_png&submit=los');
     
    //execute the request
    $content curl_exec($ch);
     
    //save the data to disk
    //file_put_contents('~/download.zip', $content);


    echo $content;

  9. Diesen Mitgliedern gefällt dieser Beitrag:


  10. #21
    Orakel von Delphi Avatar von 1stAid
    Registriert
    Dec 2015
    Beiträge
    267
    Gefällt mir!
    86
    Du gefällst: 226
    Wo holst du dir den die
    <input type="checkbox" name="chkFolder[]" value="6970000" class="chkFolder vtext-middle">
    diese Value(value="6970000" )?
    Die musst du dir nach dem suchen der nach der Ordnerid "ird5u7o6soto" holen
    danach sendest du die 2 Parameter
    'op=stimg_png'
    'chkFolder[]=' + match.Value
    an die Seite
    an der Stelle hast du nur xxxx stehen statt der gesucht/gefundenen OrdnerNummer

  11. #22
    Senior Avatar von Uranjitsu
    Registriert
    May 2016
    Beiträge
    210
    Gefällt mir!
    223
    Du gefällst: 158
    XXX habe ich hier nur ersetzt.

    - Das Script logt sich ein
    - Das Script sucht nun anhand der ID nur den ordner "ird5u7o6soto"
    - Dann soll ja der BBCode generiert werden:
    Code:
    http://share-links.biz/manage?search=ird5u7o6soto&chkFolder[]=6979733&op=stimg_png
    Das Problem ist aber, dass der Submit via
    Code:
    onclick="javascript:return submitForm();"
    stattfindet.

    Sonst würde der Aufruf im Browser mit:
    Code:
    http://share-links.biz/manage?search=ird5u7o6soto&chkFolder[]=6979733&op=stimg_png
    genügen. Das funktioniert ja ebenfalls nicht.

    PHP-Code:
    $username 'XXX';
    $password 'XXX';
    $loginUrl 'http://share-links.biz/login';
    $sl_unique_link str_replace("http://share-links.biz/_""""http://share-links.biz/_ird5u7o6soto");
     
    //init curl
    $ch curl_init();
     
    //Set the URL to work with
    curl_setopt($chCURLOPT_URL$loginUrl);
     
    // ENABLE HTTP POST
    curl_setopt($chCURLOPT_POST1);

    curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
     
    //Set the post parameters
    curl_setopt($chCURLOPT_POSTFIELDS'remember_me=1&user='.$username.'&pass='.$password.'&submit=Login');
     
    //Handle cookies for the login
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');

     
    //Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
    //not to print out the results of its query.
    //Instead, it will return the results as a string return value
    //from curl_exec() instead of the usual true/false.
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
     
    //execute the request (the login)
    $store curl_exec($ch);
     
    //the login is now done and you can continue to get the
    //protected content.
     
    //set the URL to the protected file
    curl_setopt($chCURLOPT_URL'http://share-links.biz/manage?search='.$sl_unique_link.'&chkFolder[]=6979733&op=stimg_png&submit=los');
     
    //execute the request
    $content curl_exec($ch);
     
    //save the data to disk
    //file_put_contents('~/download.zip', $content);


    echo $content 
    Geändert von Uranjitsu (27.05.2016 um 17:05 Uhr)

  12. #23
    Ultimatives Spiderschwein Avatar von jbs
    Registriert
    Jun 2015
    Beiträge
    209
    Gefällt mir!
    151
    Du gefällst: 195
    Das ist ein POST Request der da abgeschickt wird, kein GET Request. Deshalb klappts auch nicht wenn dus nur über die URL machen willst. Also Formualr abschicken mit neuen Fields und dann die Ergebnisseite nach dem PNG durchsuchen und Online oder Offline zurückgeben, je nachdem welches PNG gefunden wird.
    Du kannst das Bild nicht einfach so über ne URL oder ID einbinden. Das geht nicht.

  13. #24
    VIP Team
    Registriert
    May 2015
    Beiträge
    1,024
    Gefällt mir!
    862
    Du gefällst: 374
    Ich habe es mal finalisiert. Funktioniert super!

    PHP-Code:
    <?php
    $username 
    'justatest'
    $password 'justatest'
    $loginUrl 'http://share-links.biz/login'
    $sl_unique_link str_replace("http://share-links.biz/_""""http://share-links.biz/_mg1gu7oztmz9"); 
      
    //init curl 
    $ch curl_init(); 
      
    //Set the URL to work with 
    curl_setopt($chCURLOPT_URL$loginUrl); 
      
    // ENABLE HTTP POST 
    curl_setopt($chCURLOPT_POST1); 

    curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']); 
      
    //Set the post parameters 
    curl_setopt($chCURLOPT_POSTFIELDS'remember_me=1&user='.$username.'&pass='.$password.'&submit=Login'); 
      
    //Handle cookies for the login 
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt'); 

      
    //Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL 
    //not to print out the results of its query. 
    //Instead, it will return the results as a string return value 
    //from curl_exec() instead of the usual true/false. 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
      
    //execute the request (the login) 
    $store curl_exec($ch); 
      
    //the login is now done and you can continue to get the 
    //protected content. 
      
    //set the URL to the protected file 
    curl_setopt($chCURLOPT_URL'http://share-links.biz/manage?search='.$sl_unique_link.'&chkFolder[]=6979733&op=stimg_png&submit=los'); 
      
    //execute the request 
    $content curl_exec($ch); 

    // get the real folder id
    preg_match('/<input type="checkbox" name="chkFolder\[\]" value="(\d+)" class="chkFolder vtext-middle" \/>/'$content$match);

    if(!isset(
    $match[1])) die('could not extract real folder id');

    curl_setopt($chCURLOPT_URL'http://share-links.biz/manage');
    curl_setopt($chCURLOPT_POSTtrue);
    curl_setopt($chCURLOPT_POSTFIELDS, array(
        
        
    'op' => 'stimg_png',
        
    'chkFolder[]' => $match[1]

    ));

    $content curl_exec($ch);

    preg_match('/(http:\/\/stats\.share-links\.biz\/[0-9a-z]+\.png)/i'$content$link);
    if(!isset(
    $link[1])) die('could not extract status image link');
    echo 
    $link[1];

    //save the data to disk 
    //file_put_contents('~/download.zip', $content); 


    #echo $content ;  

    ?>
    Der Account wurde extra für diese Spielerei angelegt!

  14. Diesen Mitgliedern gefällt dieser Beitrag:


  15. #25
    Senior Avatar von Uranjitsu
    Registriert
    May 2016
    Beiträge
    210
    Gefällt mir!
    223
    Du gefällst: 158
    Ahhh,

    super. Das Funktioniert erstklassig.

    Herzlichen Dank für die Zeit

  16. Diesen Mitgliedern gefällt dieser Beitrag:


  17. #26
    VIP Team
    Registriert
    May 2015
    Beiträge
    1,024
    Gefällt mir!
    862
    Du gefällst: 374
    Jetzt müsste man noch hinbekommen das so umzubauen das mit einem Funktionsabruf die Statusimages für mehrere Ordner abgreifbar sind. Kann man überhaupt auf Fremd Ids zugreifen?

    Kann man überhaupt auf Fremd Ids zugreifen?
    :meh, leider nicht sonst hätte ich nen kleinen Service gebaut
    Geändert von darkness (27.05.2016 um 18:16 Uhr)

  18. #27
    Orakel von Delphi Avatar von 1stAid
    Registriert
    Dec 2015
    Beiträge
    267
    Gefällt mir!
    86
    Du gefällst: 226
    Da wie mehrfach erwähnt ein login erforderlich ist, beantwortet sich die Frage hoffentlich
    bau eine Schleife.

    Da man nur bedingt an die checkboxen id kommt.
    Die man entweder über die Hauptseite kommt, oder über die Suche.
    Wenn nun aber besagte id auf Seite 2 ist ... Pustekuchen
    Abgesehen davon das du die unterschiedlichen .png dann den Id richtig zuordnen müsstest. Was schwierig werden kann.
    Daher ist eine Schleife die bessere Wahl.
    Geändert von 1stAid (27.05.2016 um 19:16 Uhr)

  19. #28
    VIP Team
    Registriert
    May 2015
    Beiträge
    1,024
    Gefällt mir!
    862
    Du gefällst: 374
    Ich kann mir schon vorstellen wie das geht Naja ich habe halt gehofft das SL einen auch an fremde Status Images kommen lässt. Naja Pustekuchen ...

  20. #29
    ROT-26-Spezialist
    THEMENSTARTER

    Avatar von Cannonau
    Registriert
    Mar 2015
    Beiträge
    262
    Gefällt mir!
    121
    Du gefällst: 286
    Hallo und danke für die ganzen Beiträge und Codebeispiele!

    Nachdem ich jetzt zwei Codebeispiele durchsehen konnte und beide nur ganz einfache POST-Requests mit zwei Variablen für das Absenden des letzten Formulars verwenden, dazu keine exotischen Flags oder Header außer dem User-Agent gesetzt werden, muß ich wohl annehmen, daß sich das Standalone-cURL anders verhält als libcURL oder sogar buggy ist.

    Bevor ich jetzt anfange, noch andere Kompilate komplett durchzutesten, werde ich die php-Lösung für den Einsatz auf der Kommandozeile anpassen und einbinden. Dank der guten php-Doku habe ich sehr schnell einen ersten Test durchführen können, mit positivem Ergebnis. Das hat nur 20 Minuten gedauert, da frickele ich jetzt nicht weiter mit dem Standalone herum, das lohnt nicht.

    Die php-Lösung ist übrigens auch sichtbar performanter als das Standalone-cURL - gut zu wissen. :-)

    Cannonau

  21. #30
    ROT-26-Spezialist
    THEMENSTARTER

    Avatar von Cannonau
    Registriert
    Mar 2015
    Beiträge
    262
    Gefällt mir!
    121
    Du gefällst: 286
    Da das hier so inspirierend war, zeige ich auch noch einen Weg in Python mit Requests, schön schlank, allerdings roh und ohne Exception Handling:

    Code:
    import re, requests
    # import sys
    
    # _username = sys.argv[1]
    # _password = sys.argv[2]
    # _imgType = sys.argv[3]
    # _folderID = sys.argv[4]
    _username = 'justatest'
    _password = 'justatest'
    _imgtype = 'gif'
    _folderID = 'mg1gu7oztmz9'
    
    s = requests.Session()
    s.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0'})
    s.post('http://share-links.biz/login', data = {'user': _username, 'pass': _password, 'submit': 'Login', 'remember_me': 1})
    _body = s.get('http://share-links.biz/manage', params = {'search': _folderID}).text
    _folder_number = re.search(r'<input type="checkbox" name="chkFolder\[\]" value="(\d+)" class="chkFolder vtext-middle" \/>', _body).group(1)
    _body = s.post('http://share-links.biz/manage', data = {'op': 'stimg', 'chkFolder[]': _folder_number}).text
    _imglink = re.search(r'http:\/\/stats\.share-links\.biz\/[0-9a-z]+\.', _body).group(0)
    print(_imglink + _imgtype)
    s.close()
    Vielleicht hilft's ja jemandem und sei es, indem es das Interesse für Python weckt ;-)

    Cannonau
    Die Cloud heißt Cloud, weil sie Deine Daten cloud.

  22. Diesen Mitgliedern gefällt dieser Beitrag:


Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Share-Links.biz gibts da überhaupt Support?
    Von Batista im Forum Daily Talk & Offtopic
    Antworten: 7
    Letzter Beitrag: 24.12.2018, 16:48
  2. Share-Links.biz Status
    Von mottek im Forum IntelligeN
    Antworten: 1
    Letzter Beitrag: 27.06.2018, 12:21
  3. Share-Links 100% CPU Auslastung
    Von Roxithro im Forum Technik / Hardware & Software
    Antworten: 22
    Letzter Beitrag: 16.02.2018, 15:58

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org