diff options
author | Дамјан Георгиевски | 2018-03-23 15:59:26 +0100 |
---|---|---|
committer | Дамјан Георгиевски | 2018-03-23 15:59:26 +0100 |
commit | cf0138bc57999c8e739b0829b2144d457495f72b (patch) | |
tree | 63235a323f9b1ff6f5fd282751d9b0cb3ae8de01 | |
parent | e2c14f1e99357c32cb72060f393f6a96db8bb08a (diff) | |
download | aur-chromecast-wallpapers.tar.gz |
use a python script to download files from GDrive
-rw-r--r-- | .SRCINFO | 7 | ||||
-rw-r--r-- | PKGBUILD | 16 | ||||
-rwxr-xr-x | gdrive-download.py | 44 |
3 files changed, 60 insertions, 7 deletions
@@ -1,12 +1,13 @@ pkgbase = chromecast-wallpapers pkgdesc = 700 Google Chromecast background images - pkgver = 1.0 + pkgver = 2.0 pkgrel = 1 url = http://chromecastbg.alexmeub.com/ arch = any license = custom - source = https://dl.dropboxusercontent.com/u/535060/chromecast1200.zip - sha256sums = 1ef311714bb97004544ad9165a8498526f34f588bda591dd9ac7ff7d52a1a807 + makedepends = python-requests + source = gdrive-download.py + sha256sums = f778abeee2b410eed75f405223a112680a02850aa425b8f924ed40dd32d384c8 pkgname = chromecast-wallpapers @@ -1,17 +1,25 @@ # Maintainer: Damjan Georgievski <gdamjan@gmail.com> pkgname=chromecast-wallpapers -pkgver=1.0 +pkgver=2.0 pkgrel=1 pkgdesc="700 Google Chromecast background images" url="http://chromecastbg.alexmeub.com/" arch=('any') license=('custom') -source=('https://dl.dropboxusercontent.com/u/535060/chromecast1200.zip') +source=(gdrive-download.py) +makedepends=(python-requests) + +_source_gdrive_id="0B1FX0RxrL5WeUU8tRHdWa0M0aXM" +_source_sha256sum="1ef311714bb97004544ad9165a8498526f34f588bda591dd9ac7ff7d52a1a807" +_source_filename="$pkgname-$pkgver.zip" package() { + "${srcdir}"/gdrive-download.py "${_source_gdrive_id}" "${_source_filename}" + echo "${_source_sha256sum} ${_source_filename}" | sha256sum -c + install -d -m755 "${pkgdir}"/usr/share/wallpapers/ - mv "${srcdir}"/chromecast1200 "${pkgdir}"/usr/share/wallpapers/ + bsdtar xf "${_source_filename}" -C "${pkgdir}"/usr/share/wallpapers/ } # vim:set ts=2 sw=2 et: -sha256sums=('1ef311714bb97004544ad9165a8498526f34f588bda591dd9ac7ff7d52a1a807') +sha256sums=('f778abeee2b410eed75f405223a112680a02850aa425b8f924ed40dd32d384c8') diff --git a/gdrive-download.py b/gdrive-download.py new file mode 100755 index 000000000000..0dce664b57b4 --- /dev/null +++ b/gdrive-download.py @@ -0,0 +1,44 @@ +#! /usr/bin/python +# source: https://stackoverflow.com/a/39225039/230917 +import requests + +def download_file_from_google_drive(id, destination): + def get_confirm_token(response): + for key, value in response.cookies.items(): + if key.startswith('download_warning'): + return value + + return None + + def save_response_content(response, destination): + CHUNK_SIZE = 32768 + + with open(destination, "wb") as f: + for chunk in response.iter_content(CHUNK_SIZE): + if chunk: # filter out keep-alive new chunks + f.write(chunk) + + URL = "https://docs.google.com/uc?export=download" + + session = requests.Session() + + response = session.get(URL, params = { 'id' : id }, stream = True) + token = get_confirm_token(response) + + if token: + params = { 'id' : id, 'confirm' : token } + response = session.get(URL, params = params, stream = True) + + save_response_content(response, destination) + + +if __name__ == "__main__": + import sys + if len(sys.argv) is not 3: + print("Usage: python google_drive.py drive_file_id destination_file_path") + else: + # TAKE ID FROM SHAREABLE LINK + file_id = sys.argv[1] + # DESTINATION FILE ON YOUR DISK + destination = sys.argv[2] + download_file_from_google_drive(file_id, destination) |