summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorДамјан Георгиевски2018-03-23 15:59:26 +0100
committerДамјан Георгиевски2018-03-23 15:59:26 +0100
commitcf0138bc57999c8e739b0829b2144d457495f72b (patch)
tree63235a323f9b1ff6f5fd282751d9b0cb3ae8de01
parente2c14f1e99357c32cb72060f393f6a96db8bb08a (diff)
downloadaur-chromecast-wallpapers.tar.gz
use a python script to download files from GDrive
-rw-r--r--.SRCINFO7
-rw-r--r--PKGBUILD16
-rwxr-xr-xgdrive-download.py44
3 files changed, 60 insertions, 7 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4df54d6cfe8e..dbbb056cb86c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 18f63b778e4b..2707279fb55f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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)