def matchDemos(): nut.initTitles() nut.initFiles() orphans = {} Titles.loadTxtDatabases() for nsuId, titleId in Titles.nsuIdMap.items(): for region, languages in Config.regionLanguages().items(): for language in languages: if nsuId: title = Titles.get(str(nsuId), region, language) title.id = titleId for region, languages in Config.regionLanguages().items(): for language in languages: for nsuId, rt in Titles.data(region, language).items(): if rt.id: continue orphans[nsuId] = rt.name Titles.saveRegion(region, language) for nsuId, name in orphans.items(): print(str(nsuId) + '|' + str(name))
def scrapeLangTitles(region='US', language='en', shop_id=4, force=False): Print.info('Scraping %s %s' % (region, language)) pageSize = 50 offset = 0 total = 1 c = 0 while offset < total: url = 'https://bugyo.hac.%s.eshop.nintendo.net/shogun/v1/titles?shop_id=%d&lang=%s&country=%s&sort=new&limit=%d&offset=%d' % ( Config.cdn.environment, shop_id, language, region, pageSize, offset) #print(url) j = makeJsonRequest('GET', url, {}, '%d/%s/%s/titles/index/%d-%d.json' % (shop_id, language, region, pageSize, offset), force=False, expiration=60) if not j: break total = int(j['total']) try: for i in j['contents']: scrapeTitle(i['id'], region, language, shop_id) except Exception as e: print(str(e)) raise break offset = offset + len(j['contents']) Titles.saveRegion(region, language)
def scrapeShogunUnnamed(): initTitles() initFiles() result = {} for k, t in Titles.data().items(): if not t.isDLC: continue if not t.name and t.baseId != '0100069000078000': result[t.baseId] = True if not Config.dryRun: for id, j in tqdm(result.items()): try: for region, languages in Config.regionLanguages().items(): for language in languages: t = Titles.getTitleId(id, region, language) if t: s = cdn.Shogun.scrapeTitle(int(t.nsuId), region=region, language=language, force=False) #print(json.dumps(s.__dict__)) except: pass for region, languages in Config.regionLanguages().items(): for language in languages: Titles.saveRegion(region, language) Titles.save() else: print(result)
if args.eshop_latest: print( cdn.Shogun.getLatest(args.file[0], args.file[1], args.file[2])) if args.scrape_nsuid: nut.initTitles() region = args.region or 'US' language = args.language or 'en' print( json.dumps( cdn.Shogun.scrapeTitle(int(args.scrape_nsuid), region=region, language=language, force=True).__dict__)) Titles.saveRegion(region, language) if args.usb: try: from nut import Usb except BaseException as e: Print.error('pip3 install pyusb, required for USB coms: ' + str(e)) nut.scan() Usb.daemon() if args.scan: nut.initTitles() nut.initFiles() nut.scan()
nut.initTitles() nut.initFiles() for i in args.scrape_shogun: if len(i) == 16: l = cdn.Shogun.ids(i) if not l or len(l) == 0 or len(l['id_pairs']) == 0: print('no nsuId\'s found') else: print(l) for t in l['id_pairs']: print('nsuId: ' + str(t['id'])) print( json.dumps( cdn.Shogun.scrapeTitle( t['id']).__dict__)) Titles.saveRegion('US', 'en') else: print('bleh') if args.gen_tinfoil_titles: genTinfoilTitles() if args.scrape_title: nut.initTitles() nut.initFiles() if not Titles.contains(args.scrape_title): Print.error('Could not find title ' + args.scrape_title) else: Titles.get(args.scrape_title).scrape(False) Titles.save()