Podstawy podstaw, użycie API IdriveSync.com

0

Witajcie,
Na wstępie przepraszam za ignorancję, ale nie jestem w stanie obecnie chłonąć kolejnej dawki wiedzy i ogarniać kolejnej technologii. Nowe życiowe obowiązku przede mną...
Po prostu chciałbym wykorzystać istniejące narzędzia, niespecjalnie obecnie wnikająć w to co robią.

Mam kilka kont na idrive.com / idrivesync.com
Do części zasobów dostęp mam ogarnięty - tej części bardziej odpowiadającej 'cold' storage.
Oprócz standardowego archwialnego storage oferują oni coś takiego jak "sync space" - przeznaczone do synchronizowania z użyciem ich aplikacji, która jest... nie do konca zadowalająca dla mnie.
Osobiście wolałbym to kontrolować samodzielnie, z użyciem curla, ew jakichś skryptów.

Problem w tym, że nie mam pojęcia o pythonie, ani praktycznie o żadnym innym języku poza bashem.

  1. Podstawowy problem mam już na wstępie - gdy mam 2 problemy z użyciem tego snippeta ( https://gist.github.com/evsapi/2697214#file-idrive-getserveraddress-rest-api-python-py )
  2. Jak wstawić do zmiennej akieś specjalne znaki typu @! #$^% ? W poniższym snippecie muszę podstawić adres email i hasło ze znakami specjalnymi a mam wrażenie że ani ujęcie w " " ani w ' ' nie działa - dostaję błąd ("invalid parameters").
  3. Jak wyświetlić wykon tego tak, by widzieć na bieżąco podstawione watrości do zmiennych ?
  4. I wreszcie - co robi ta ostatnia linia? Ona chyba wywołuje jakieś moduły by połączyć się z użyciem tych parametrów do urla, do standardowego wyjścia powinienem dostać jakąś zawartość?
    Uruchamiam to w bashu w formie python nazwapliku
import urllib, urllib2

url = 'https://evs.idrivesync.com/evs/getServerAddress'

params = urllib.urlencode({
     'uid': <USER ID>,
     'pwd': <USER PASSWORD>
})
result = urllib.urlopen(url, params).read()

Mimo mojej ignorancji mam nadzieję, że znajdzie się jakaś dobra duszyczka i poratuje absolutnego begginnera...
pozdrawiam

Disclaimer
TO NIE jest post reklamowy, raczej mam o nich złe zdanie, ale muszę się trzymać póki co tej platformy.

0

Doradzam użycie biblioteki requests

import requests

URL = "https://evs.idrivesync.com/evs/getServerAddress"

if __name__ == "__main__":
    result = requests.post(URL, params = {"uid": "asd@#", "pwd": "dsa&^&^&"})

    print(result.status_code)
    print(result.content)

3

Podpinam sie pod @part i jednoczesnie polecam pojscie o krok dalej i uzycie requests-html. Ta biblioteka ma od razu wbudowanego BS4 do wyciagania konkretncyh elementow ;)

0

Bardzo dziękuję za podpowiedzi,

Niestety, wykonanie powyższego snippeta nie przyniosło wiele rezultatu:

~# python testidrusun
200

<?xml version="1.0" encoding="UTF-8"?> <tree message="ERROR" desc="INVALID USER" />

Zarejestrowałem inne konto, darmowe, poprzez serwis idrivesync dla pewności - błąd dostaję ten sam.
Napisałem do supportu, zobaczymy co powiedzą, ale raczej zbyt pomocni to oni nie są.

Kolejne 2 pytania

  1. Da się włączyć jakiś super dokładny tryb debuowania?
  2. da się jakoś ustalić pod jakie dokładnie adresy i z jakimi parametrami taka komenda uderza?

Do tego zimnego storage jest klient konsolowy o nazwie idevsutil_linux któremu trzeba podać nazwę serwera.
Zastanawiałem się kiedyś czy tego jakoś się nie da wykorzystać.
Albo pozostaje strzelanie jakimiś konkretnymi requestami API - da się to jakoś sprawdzić (endpointy, itp_ z mojej strony ?

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1