Mati365 / librus-api

Unofficial advanced node.js Librus scraping API(http://synergia.librus.pl/)
http://synergia.librus.pl/
118 stars 25 forks source link

inbox.js broken #64

Closed pituluk closed 2 months ago

pituluk commented 3 months ago
librus-api/lib/resources/inbox.js:173
        id: parseInt($(children[3]).find("a").attr("href").split(/[/]/)[4]),
                                                          ^

TypeError: Cannot read properties of undefined (reading 'split')
Mati365 commented 3 months ago

Hejka, nie mam dostępu do librusa od wielu lat. Pewnie zmieniło się coś w strukturze HTML i padło. Byłbym wdzięczny jakbyś podrzucił fix ;)

pituluk commented 2 months ago

chetnie bym naprawil ale obecnie jest poczatek roku i nie ma wiadomosci, struktura wyglada na poprawna? nie rozumiem tylko czemu parser ma na stale wpisane offsety w array i nie rozumiem co ta crashujaca linia ma robic

Mati365 commented 2 months ago

W czwartym segmencie linku jest numeryczny ID, stąd na sztywno zanotowany indeks

pituluk commented 2 months ago
<table class="stretch container-message">
   <tbody>
      <tr>
         <td class="message-folders">
            <table class="message-folders-options">
               <tbody>
                  <tr>
                     <td><a id="wiadomosci-napisz" class="button left blue" href="/wiadomosci/2/5" style="width: 100px;">
                        <span class="button-start">Napisz</span><span class="button-end"></span>
                        </a>                
                     </td>
                  </tr>
               </tbody>
            </table>
            <table class="message-folders">
               <tbody>
                  <tr>
                     <td class="tree-first-branch">&nbsp;</td>
                     <td>
                        <a class="selected" href="/wiadomosci/5">odebrane</a>
                     </td>
                  </tr>
                  <tr>
                     <td class="tree-next-branch">&nbsp;</td>
                     <td>
                        <a class="" href="/wiadomosci/6">wysłane</a>
                     </td>
                  </tr>
                  <tr>
                     <td class="tree-next-branch">&nbsp;</td>
                     <td>
                        <a class="" href="/wiadomosci/7">kosz</a>
                     </td>
                  </tr>
                  <tr>
                     <td class="tree-last-branch">&nbsp;</td>
                     <td>
                        <a href="/wiadomosci_archiwum">Archiwum</a>
                     </td>
                  </tr>
               </tbody>
            </table>
            <hr class="message-block-separator">
            <table class="stretch message-folders-options">
               <tbody>
                  <tr>
                     <td><input type="BUTTON" value="Dodaj" class="small ui-button ui-widget ui-state-default ui-corner-all" onclick="otworz_w_nowym_oknie('/wiadomosci/etykiety','o1',700,400)" role="button" aria-disabled="false" style="z-index: 0;"></td>
                  </tr>
               </tbody>
            </table>
            <table class="message-labels">
               <tbody>
                  <tr>
                     <td class="space-holder">&nbsp;</td>
                     <td colspan="3"><b>Etykiety</b></td>
                  </tr>
                  <tr>
                     <td class="space-holder">&nbsp;</td>
                     <td class="space-holder">&nbsp;</td>
                     <td class="label-color">
                        <span style="background-color: #DAA520" class="color-box">&nbsp;</span>
                     </td>
                     <td class="label-name">    
                        <a href="/wiadomosci/etykieta/16758" style="color: #494949; ">crrent
                        </a>
                     </td>
                  </tr>
                  <tr>
                     <td class="space-holder">&nbsp;</td>
                     <td class="space-holder">&nbsp;</td>
                     <td class="label-color">
                        <span style="background-color: #32CD32" class="color-box">&nbsp;</span>
                     </td>
                     <td class="label-name">    
                        <a href="/wiadomosci/etykieta/16760" style="color: #494949; ">done
                        </a>
                     </td>
                  </tr>
                  <tr>
                     <td class="space-holder">&nbsp;</td>
                     <td class="space-holder">&nbsp;</td>
                     <td class="label-color">
                        <span style="background-color: #FF0000" class="color-box">&nbsp;</span>
                     </td>
                     <td class="label-name">    
                        <a href="/wiadomosci/etykieta/16762" style="color: #494949; ">email
                        </a>
                     </td>
                  </tr>
               </tbody>
            </table>
         </td>
         <td>
            <table class="stretch message-button-panel">
               <tbody>
                  <tr>
                     <td style="vertical-align: middle; text-align: left;   white-space: nowrap;  ">
                        <input type="button" value="Usuń zaznaczone" name="usun_zaznaczone" tabindex="3" class="medium left ui-button ui-widget ui-state-default ui-corner-all" onclick="usunListeWiadomosci(5, 0, 0)" role="button" aria-disabled="false" style="z-index: 0;">
                        <select name="opcja_zaznaczone_g" class="big left" onchange="if(this.value==&quot;drukujWiadomosci&quot;) {document.forms[0].action=&quot;/wiadomosci/wydruk_wiadomosci.pdf&quot;; document.forms[0].target=&quot;_blank&quot;; document.forms[0].submit(); document.forms[0].target=&quot;_self&quot;; document.forms[0].action=&quot;\/wiadomosci&quot;; this.selectedIndex=0; document.querySelectorAll(&quot;input.wiadomoscLista:checked&quot;).forEach(input => input.closest(&quot;tr&quot;).querySelectorAll(&quot;td&quot;).forEach(td => td.style = &quot;&quot;));} else {this.form.submit();}">
                           <option value="0">Więcej poleceń...</option>
                           <optgroup label="Oznacz etykietą:">
                              <option value="oznaczEtykieta_16758">crrent </option>
                              <option value="oznaczEtykieta_16760">done </option>
                              <option value="oznaczEtykieta_16762">email </option>
                           </optgroup>
                           <optgroup label="Usuń etykietę:">
                              <option value="usunEtykiete_16758">crrent</option>
                              <option value="usunEtykiete_16760">done</option>
                              <option value="usunEtykiete_16762">email</option>
                           </optgroup>
                           <optgroup label="Inne:">
                              <option value="drukujWiadomosci">Drukuj</option>
                           </optgroup>
                        </select>
                     </td>
                     <td style="vertical-align: middle; text-align: right;   ">
                        Pokaż tylko wiadomości otrzymane od nadawcy
                     </td>
                     <td class="big" style="vertical-align: middle; text-align: left;   ">
                        <select name="filtr_uzytkownikow" class="big left" onchange="this.form.action='/wiadomosci/5'; this.form.submit()">
                           <option value="-">Wszyscy użytkownicy</option>
                        </select>
                     </td>
                  </tr>
               </tbody>
            </table>
            <table class="decorated stretch" style="margin: 5px 0px;">
               <thead>
                  <tr>
                     <td class="micro">
                        <input name="zaznacz_wszystkie" id="wiadomosciListaWszystkie" type="checkbox" onclick="zaznaczWszystkieWiadomosci()">
                     </td>
                     <td class="micro">&nbsp;</td>
                     <input type="hidden" name="sortujTabele[tabeleKolumna]" id="sortujTabeleKolumna" value="3">
                     <input type="hidden" name="sortujTabele[tabeleKierunek]" id="sortujTabeleKierunek" value="1">
                     <input type="hidden" name="sortujTabele[tabelePojemnik]" id="sortujTabelePojemnik" value="105">
                     <td>
                        <a href="javascript:void(0);" onclick="sendSortTable(1, 0)">Nadawca</a>
                        &nbsp;<input type="hidden" name="sortowanie[105][0]">
                     </td>
                     <td>
                        <a href="javascript:void(0);" onclick="sendSortTable(2, 0)">Temat</a>
                        &nbsp;<input type="hidden" name="sortowanie[105][1]">
                     </td>
                     <td>
                        <a href="javascript:void(0);" onclick="sendSortTable(3, 0)">Wysłano</a>
                        &nbsp;[↑]<input type="hidden" name="sortowanie[105][2]">
                     </td>
                     <td class="micro">&nbsp;</td>
                  </tr>
               </thead>
               <tbody>
                  <tr class="line0">
                     <td colspan="6" class="center">Brak wiadomości</td>
                  </tr>
               </tbody>
               <tfoot>
                  <tr>
                     <td colspan="6">&nbsp;</td>
                  </tr>
               </tfoot>
            </table>
            <table class="stretch message-button-panel">
               <tbody>
                  <tr>
                     <td style="vertical-align: middle; text-align: left;   white-space: nowrap;  ">
                        <input type="button" value="Usuń zaznaczone" name="usun_zaznaczone" tabindex="3" class="medium left ui-button ui-widget ui-state-default ui-corner-all" onclick="usunListeWiadomosci(5, 0, 0)" role="button" aria-disabled="false" style="z-index: 0;">
                        <select name="opcja_zaznaczone_d" class="big left" onchange="if(this.value==&quot;drukujWiadomosci&quot;) {document.forms[0].action=&quot;/wiadomosci/wydruk_wiadomosci.pdf&quot;; document.forms[0].target=&quot;_blank&quot;; document.forms[0].submit(); document.forms[0].target=&quot;_self&quot;; document.forms[0].action=&quot;\/wiadomosci&quot;; this.selectedIndex=0; document.querySelectorAll(&quot;input.wiadomoscLista:checked&quot;).forEach(input => input.closest(&quot;tr&quot;).querySelectorAll(&quot;td&quot;).forEach(td => td.style = &quot;&quot;));} else {this.form.submit();}">
                           <option value="0">Więcej poleceń...</option>
                           <optgroup label="Oznacz etykietą:">
                              <option value="oznaczEtykieta_16758">crrent </option>
                              <option value="oznaczEtykieta_16760">done </option>
                              <option value="oznaczEtykieta_16762">email </option>
                           </optgroup>
                           <optgroup label="Usuń etykietę:">
                              <option value="usunEtykiete_16758">crrent</option>
                              <option value="usunEtykiete_16760">done</option>
                              <option value="usunEtykiete_16762">email</option>
                           </optgroup>
                           <optgroup label="Inne:">
                              <option value="drukujWiadomosci">Drukuj</option>
                           </optgroup>
                        </select>
                     </td>
                  </tr>
               </tbody>
            </table>
            <input type="HIDDEN" name="poprzednia" value="5">
         </td>
      </tr>
   </tbody>
</table>
pituluk commented 2 months ago

nie rozumiem co zrobila ta zmiana z commita cheerio ale naprawilo sie :)

Mati365 commented 2 months ago

Oki