Ejemplo n.º 1
0
def gpics(gaiaID,
          client,
          cookies,
          headers,
          regex_albums,
          regex_photos,
          headless=True):
    baseurl = "https://get.google.com/albumarchive/"

    print(f"\nGoogle Photos : {baseurl + gaiaID + '/albums/profile-photos'}")
    out = get_source(gaiaID, client, cookies, headers, headless)

    if not out:
        print("=> Couldn't fetch the public photos.")
        return False
    if out["stats"] == "notfound":
        print("=> No album")
        return False

    # open('debug.html', 'w').write(repr(out["source"]))
    results = re.compile(regex_albums).findall(out["source"])

    list_albums_length = len(results)

    if results:
        exifeater = ExifEater()
        pics = []
        for album in results:
            album_name = album[1]
            album_link = baseurl + gaiaID + "/album/" + album[0]
            album_length = int(album[2])

            if album_length >= 1:
                try:
                    req = client.get(album_link)
                    source = req.text.replace('\n', '')
                    results_pics = re.compile(regex_photos).findall(source)
                    for pic in results_pics:
                        pic_name = pic[1]
                        pic_link = pic[0]
                        pics.append(pic_link)
                except:
                    pass

        print(
            f"=> {list_albums_length} albums{', ' + str(len(pics)) + ' photos' if list_albums_length else ''}"
        )
        for pic in pics:
            try:
                req = client.get(pic)
                img = Image.open(BytesIO(req.content))
                exifeater.feed(img)
            except:
                pass

        print("\nSearching metadata...")
        exifeater.output()
    else:
        print("=> No album")
Ejemplo n.º 2
0
def gpics(gaiaID, client, cfg):
    baseurl = "https://get.google.com/albumarchive/"

    print(f"\nGoogle Photos : {baseurl + gaiaID}")
    req = client.get(baseurl + gaiaID)
    results = re.compile(cfg["regexs"]["albums"]).findall(req.text)

    list_albums_length = len(results)

    if results:
        exifeater = ExifEater()
        pics = []
        for album in results:
            album_name = album[1]
            album_link = baseurl + gaiaID + "/album/" + album[0]
            album_length = int(album[2])

            if album_length >= 1:
                req = client.get(album_link)
                source = req.text.replace('\n', '')
                open('tmp.html', 'w').write(source)
                results_pics = re.compile(
                    cfg["regexs"]["photos"]).findall(source)
                for pic in results_pics:
                    pic_name = pic[1]
                    pic_link = pic[0]
                    pics.append(pic_link)

        print(
            f"=> {list_albums_length} albums{', '+str(len(pics))+' photos' if list_albums_length else ''}"
        )
        for pic in pics:
            req = client.get(pic)
            img = Image.open(BytesIO(req.content))
            exifeater.feed(img)

        print("\nSearching metadata...")
        exifeater.output()
    else:
        print("=> No album")