Stan konta i status RBM LTE na routerze z OpenWRT

Kwestie techniczne, konfiguracja i rozwiązywanie problemów z modemami GSM (GPRS, EDGE, UMTS, HSDPA i HSUPA).

Moderator: Moderatorzy

ODPOWIEDZ
Upgreydd
Użytkownik forum
Posty: 41
Rejestracja: 2008-03-07, 16:18
Lokalizacja: Koszalin

Stan konta i status RBM LTE na routerze z OpenWRT

Post autor: Upgreydd »

Witam,
Mając chwilę czasu skrobnąłem skrypt wyświetlający dane z konta Play24 na temat LTE z RBM

SKRYPT:

Kod: Zaznacz cały

#-*- coding: utf-8 -*-
import json
import mechanize
import re
from bs4 import BeautifulSoup
import sys

__author__ = 'upgreydd'

if len(sys.argv) < 2:
    print "Podaj parametry: " + sys.argv[0] + " login haslo numer*"
    print "=================================================================================================="
    print "login - login do konta Play24"
    print "haslo - hasło do konta Play24"
    print "numer - numer telefonu z internetem RBM - opcjonalne jeśli więcej niż jeden numer na koncie Play24"
    print "=================================================================================================="
    print "przykład: " + sys.argv[0] + " [email protected] admin1 123123123"
    sys.exit()


loginpageurl = "https://logowanie.play.pl/opensso/logowanie"
login = sys.argv[1]
password = sys.argv[2]

if len(sys.argv) > 3:
    number = sys.argv[3]

browser = mechanize.Browser()
browser.addheaders = [('User-agent',
                       'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
browser.set_handle_redirect(True)
browser.open(loginpageurl)

browser.select_form(name="Login")
browser.form['IDToken1'] = login
browser.form['IDToken2'] = password
browser.submit()

browser.open("https://m24.play.pl/mplay24-lajt")
browser.select_form(nr=0)
browser.submit()
browser.select_form(nr=0)
browser.submit()
response = browser.open(
    "https://m24.play.pl/mplay24-lajt/home?wicket:bookmarkablePage=:pl.p4.mplay24.view.pages.MyNumbersMain")
bs = BeautifulSoup(response.read(), "html.parser")

try:
    url = bs.find('a', href=True, text=number)
    browser.open("https://m24.play.pl/mplay24-lajt/home" + url['href'])
except:
    pass


response = browser.open("https://m24.play.pl/mplay24-lajt/home/accountUnpaid")
bs = BeautifulSoup(response.read(), "html.parser")

# Stan konta
try:
    account_state = bs.find('span', {"class": "amounts"}).text.splitlines()[1]
except:
    print "Błędne parametry skryptu"
    sys.exit()

# Wazne do
valid_to = bs.find('smalll').text

response = browser.open("https://m24.play.pl/mplay24-lajt/home")
bs = BeautifulSoup(response.read(), "html.parser")

# Numer telefonu
phone_number = bs.find('div', {"class": "top"}).span.text

response = browser.open("https://m24.play.pl/mplay24-lajt/services/desc/2")
bs = BeautifulSoup(response.read(), "html.parser")

# Czy Pakiet LTE bez limitu jest aktywny
lte_status = (re.search('.*\((.*)\)', bs.find('ul', {"class": "sub services"}).a.text).group(1) == u'włączona')

print json.dumps({'phone_number': phone_number, 'valid_to': valid_to, 'account_state': account_state, 'lte_enabled': lte_status})
JAK DZIAŁA:

Kod: Zaznacz cały

OpenWrt% python fetcher.py 
Podaj parametry: fetcher.py login haslo numer*
==================================================================================================
login - login do konta Play24
haslo - hasło do konta Play24
numer - numer telefonu z internetem RBM - opcjonalne jeśli więcej niż jeden numer na koncie Play24
==================================================================================================
przykład: fetcher.py [email protected] admin1 123123123
OpenWrt% python fetcher.py kacper@***** tajnehaslo 535767***
{"phone_number": "535767***", "lte_enabled": true, "account_state": "31,00", "valid_to": "2016-08-10"}
OpenWrt% 
OPIS
Skrypt przyjmuje 2/3 parametry. Login, hasło i jako trzeci parametr nr. telefonu o ile na koncie jest więcej niż jeden numer telefonu.
Skrypt zwraca kolejno: numer telefonu, czy pakiet lte jest aktywny, stan konta, ważność konta.
Z czasem (którego mam mało) postaram się rozwinąć ten skrypt i spiąć z LuCI, może ktoś chętny do pomocy?
Miłego testowania, pozdrawiam[/b]
Awatar użytkownika
onken
** Moderator **
Posty: 6436
Rejestracja: 2014-06-07, 20:49
Lokalizacja: Kraków

Re: Stan konta i status RBM LTE na routerze z OpenWRT

Post autor: onken »

Super pomysł :)

Szkoda że nie znam programowania pythona więc nie pomogę, ale podoba mi się to :)

Wypożyczę kartę no limit - Nielimitowany internet w T-Mobile lub Orange

Cena - 60 zł za m-c
Kontakt na PW
Awatar użytkownika
elcidx
Specjalista bezprzewodowy-junior
Posty: 274
Rejestracja: 2014-08-26, 17:08
Lokalizacja: Polska

Re: Stan konta i status RBM LTE na routerze z OpenWRT

Post autor: elcidx »

Świetny pomysł.
Widziałem kiedyś w gargoylu dodawanie skryptów, ale teraz tego nie ma?
Tu jest podpis.
Awatar użytkownika
morfik
Użytkownik forum
Posty: 36
Rejestracja: 2016-06-07, 18:56

Re: Stan konta i status RBM LTE na routerze z OpenWRT

Post autor: morfik »

A nie prościej przez zwykłe polecenia AT? Poniżej przykład:

Obrazek
ODPOWIEDZ