Source code for bbarchivist.carrierchecker
#!/usr/bin/env python3
try:
from . import bbconstants # @UnusedImport
except SystemError:
import bbconstants # @UnresolvedImport @Reimport
try:
from . import networkutils # @UnusedImport
except SystemError:
import networkutils # @UnresolvedImport @Reimport
try:
from . import utilities # @UnusedImport
except SystemError:
import utilities # @UnresolvedImport @Reimport
import os
[docs]def doMagic(mcc, mnc, device,
download=False, upgrade=False,
directory=os.getcwd(),
export=False):
"""
Wrap around :mod:`bbarchivist.networkutils` carrier checking.
:param mcc: Country code.
:type mcc: int
:param mnc: Network code.
:type mnc: int
:param device: Device ID (SXX100-#)
:type device: str
:param download: Whether or not to download. Default is false.
:type download: bool
:param upgrade: Whether or not to use upgrade files. Default is false.
:type upgrade: bool
:param directory: Where to store files. Default is local directory.
:type directory: str
:param export: Whether or not to write URLs to a file. Default is false.
:type export: bool
"""
try:
devindex = bbconstants._devicelist.index(device.upper())
except ValueError as e:
print(str(e).upper())
print("INVALID DEVICE!")
raise SystemExit
model = bbconstants._modellist[utilities.return_model(devindex)]
family = bbconstants._familylist[utilities.return_family(devindex)]
hwid = bbconstants._hwidlist[devindex]
version = bbconstants._version
print("~~~CARRIERCHECKER VERSION", version + "~~~")
country, carrier = networkutils.carrier_checker(mcc, mnc)
print("COUNTRY:", country.upper())
print("CARRIER:", carrier.upper())
print("DEVICE:", model.upper())
print("VARIANT:", device.upper())
print("HARDWARE ID:", hwid)
print("\nCHECKING CARRIER...")
swv, osv, radv, files = networkutils.carrier_update_request(mcc, mnc, hwid,
download,
upgrade)
print("SOFTWARE RELEASE:", swv)
print("OS VERSION:", osv)
print("RADIO VERSION:", radv)
if export:
print("\nEXPORTING...")
with open("Links-" + swv + ".txt", "w") as target:
target.write("OS: " + osv + "\n")
target.write("RADIO: " + swv + "\n")
target.write("SOFTWARE: " + radv + "\n")
target.write("DEVICE TYPE: " + family.upper() + "\n")
target.write("\nFILES\n")
for i in files:
target.write(i + "\n")
if download:
bardir = os.path.join(directory, swv+"-"+family)
if not os.path.exists(bardir):
os.makedirs(bardir)
filedict = {}
for i in files:
filedict[str(i)] = i
print("\nDOWNLOADING...")
download_manager = networkutils.DownloadManager(filedict, bardir)
download_manager.begin_downloads()