• Stars
    star
    445
  • Rank 98,085 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 4 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Google Drive Index, which has a lot of extra features, running on Cloudflare Workers.

Notice on username change

Hi there! Thank you for visiting this repository.

Please note that my GitHub username has recently changed from @cheems to @menukaonline. If you are looking for my other repositories, you can find them under my new username (@menukaonline).

In order to ensure that visitors from old URLs are still able to find my repositories, I have created a GitHub organization with the previous handle (@cheems) which will be used to publish updates about my current repositories.

Thank you for your understanding and I apologize for any inconvenience this may have caused.

Best regards, @menukaonline (@cheems)

Preview

GoIndex Extended - Google Drive Index

Author: Cheems License: MIT Repo Size Last Commit Built with Cloudflare Workers Written in JavaScript

Combining the power of Cloudflare Workers and Google Drive will allow you to index your files on the browser on Cloudflare Workers.

🙈 Demo

📸 Screenshots

Screenshot-1 Screenshot-2 Screenshot-3 Screenshot-4 Screenshot-5 Screenshot-6

Unique Features

  • 🔎 Search function also works for folder root type
  • 🗂️ Support for duplicated file and folder names
    • 🔤 Files and folders with the same name
    • 🔠 Files and folders with the same name but different cases
  • Ability to force index to load (can be disabled)
  • 🚀 Quick actions tab (can be disabled):
    • 📥 Direct Download
    • ↗️ Open link in a new tab
    • 📋 Copy link to the clipboard
  • 🔐 File id encryption
  • 🔢 File size in 1024 bytes system
  • 👥 Support for multiple (unlimited) username/password pairs
  • 📚 Ability to download files of Google Workspace apps in all available formats:
    • 📘 Google Documents - ( docx | odt | rtf | pdf | plain text | html | html/zipped | epub )
    • 📊 Google Spreadsheets - ( xlsx | ods | csv | pdf | html/zipped )
    • 👨‍🏫 Google Presentations - ( pptx | odp | pdf | plain text )
    • 🖌 Google Drawings - ( pdf | jpg | png | svg )
    • ✍ Google Jamboards - ( pdf )
    • 📜 Google Apps Scripts - ( json )
    • 📃Google Forms - ( html/zipped )
  • 🗃️ Ability to change the order which files are listed in
  • 📂 Ability to access/download shortcuts of files and folders
  • 🦠 Ability to download files which Google has flagged as a virus (can be disabled)
  • 🗑️ Ability to download trashed files (can be disabled)
  • 🔡 Support for all characters including slashes('/', '\') and emojies in file/folder names
  • 📅 Shows modified date & time in your local time
  • 🕒 Modified time displaying issue on Safari browser and browsers on iOS has been fixed

Features

  • 🖥 Video Player - ( mp4 | webm | avi | mpg | mpeg | mkv | rm | rmvb | mov | wmv | asf | ts | flv )
  • 🎧 Music Player - ( mp3 | flac | wav | ogg | m4a )
  • 📚 Document Viewer - ( html | php | css | go | java | js | json | txt | sh | md | pdf )
  • 🖼️ Image Viewer - ( bmp | jpg | jpeg | png | gif )
  • 🔎 Multi-level Search
  • 🔐 Multi drive encryption
  • 📱 Mobile Friendly
  • 💾 Page-level caching, browser forward and backward without reloading
  • 🧥 Dark Theme
  • 🎨 Main Color:
    • red | pink | purple | deep-purple | indigo | blue | light-blue | cyan | teal | green | light-green | lime | yellow | amber | orange | deep-orange | brown | greyblue-grey
  • 🖌 Accent Color:
    • red | pink | purple | deep-purple | indigo | blue | light-blue | cyan | teal | green | light-green | lime | yellow | amber | orange | deep-orange

📋 TODO

  • Adding all expected tasks to the to-do list
  • Adding Plyr video player (almost completed)
  • Implementing service accounts feature

📖 Wiki

Note: The Wiki will be added soon. Until then, you can check this out: https://dudoo.me/wikis.
If you are comfortable reading comments in the code, here you go: goindex-extended/index.js. (Note: Don't edit the code after the line:123 unless you need to develop.)

🚀 Quick Deployment

Note: If you need the latest version, use index.js, which is in the root of the repo: goindex-extended/index.js.

  • The Latest version of index.js will be added to the generator soon. Until then, you can use the generator for creating auth credetials, and then you can add them manually to the latest code which you can get from the file mentioned above.
  1. Open the below Colab notebook in a new tab
    Open in Colab
  2. Fill the fields in it on your choice and run the cell
  3. Download the txt file with the code generated by the notebook
  4. Deploy the code to Cloudflare Workers
  5. If you added any folder to the index and you want the search function to work with folders as well, then check this out: Configure Search Functionality for Folders

🕹 Deployment

  1. Go enable Google Drive API
  2. Create a new project or use one of the existing projects if you already have created. (If you are using Google Cloud Platform for the 1st time: do this only if you want to give your project a custom name. otherwise, your project will be automatically created after the next step with the name "My First Project". If you don't care about the name of the project like me then just skip this step)
  3. Click Enable button to enable Google Drive API
  4. Click Create Credentials
  5. Select "Google Drive API" from the 1st dropdown and select "Other UI" from the 2nd dropdown
  6. Select "User data" from radio buttons
  7. Click "What credentials do I need" then, a pop-up will appear saying that you need to set up the Consent Screen.
  8. click "set up consent screen". it will take you to a new tab
  9. Select "External" as the user type and click create
  10. Provide app name, User support email, and developer contact information which are required for the consent screen. then finish creating the consent screen.
  11. After creating the consent screen, click publish app. (This option can be found under Publishing status)
  12. Head back to the previous tab to continue creating credentials
  13. Click on refresh and create OAuth client ID then click Done
  14. Click on newly created OAuth Client ID to see client id and secret
  15. Open the below Colab notebook(which is made for the ones who wish to use their own credentials) in a new tab
    Open in Colab
  16. Copy your client id and client secret into the Colab notebook and fill the fields in it on your choice and run the cell
  17. Download the txt file with the code generated by the notebook
  18. Deploy the code to Cloudflare Workers
  19. If you added any folder to the index and you want the search function to work with folders as well, then scroll down a bit and check the below section

🔎 Configure Search Functionality for Folders

If you added any folder to the index and you want the search function to work with folders as well, then the below steps need to be followed. Otherwise, the Search function will not be worked properly.

Note: If you didn't add any folder ids to the roots section in your index, then you don't need to go through this.

  1. Open the following Colab notebook in a new tab
    Open in Colab
  2. Run the cell which is highlighted; then a text box will be appeared
  3. Copy the entire index code from your Worker in Cloudflare and paste it into the provided text box
  4. Then this notebook will generate an encrypted folder id list for your index
    • This may take some time. So, you can have a coffee until this finishes up
  5. Get the folder id list by copying it to the clipboard or downloading it as a text file
  6. Next, host that folder id list in a text file (publicly) on GitHub or somewhere else you prefer
  7. Get the raw link to that file and put it in the index code: 9th line
    • CDN URLs can also be used (jsDeliver.com, raw.githack.com)
  8. finally, redeploy the code; now search function will start working with folder Root type as well

🤝 Special Thanks & Credits

Source:

  • donwa : for writing such a great script
  • yanzai & all initial contributors : for contributing to the project
  • 5MayRain : for implementing Nexmoe theme

Wiki & Readme:

    Took some stuff from their repos for setting up the README.md file and the Wiki. So thanks! 😁

LICENSE

GoIndex - Extended by Cheems(AKA Dudu) is licensed under the MIT License, which you can find in the goindex-extended/LICENSE file.

More Repositories

1

Mega-to-Google-Drive

This is a Google Colab notebook that helps you to transfer files from Mega to Google Drive
Jupyter Notebook
283
star
2

Torrents-to-Google-Drive

This is a Google Colab notebook with QBittorrent and Rclone, which can download torrents to Google Drive
Jupyter Notebook
96
star
3

Any-file-to-Google-Drive

This Google Colab notebook will help you download any file directly to Google Drive with the help of the JDownloader web interface
Jupyter Notebook
68
star
4

compress-decompress-in-Google-Drive

This is a Google Colab notebook for compressing/decompressing files/folders in Google Drive
Jupyter Notebook
56
star
5

transfer-between-drives

This is a Google Colab notebook for transferring files/folders between drives from different Google accounts
Jupyter Notebook
37
star
6

FFmpeg-for-GDrive

This is a Google Colab notebook with FFmpeg for converting multimedia files on Google Drive
Jupyter Notebook
28
star
7

Remote-Uploader

This is a Google Colab notebook for transferring files between cloud storage services and filehosts such as anonfiles.
Jupyter Notebook
18
star
8

hackintosh-msi-gf63-thin-10SCXR

Setting up hackintosh on this MSI laptop - Intel Core i7 10th Gen
ASL
7
star
9

retrieve-access-tokens-for-Google-APIs

Using this Google Colab notebook, you can easily retrieve access tokens for Google Drive API
Jupyter Notebook
6
star
10

BlackPearl-Tutorial-Thread-Generator

A Thread Generator for BlackPearl Tutorials Section
Python
4
star
11

youtube-title-updater

This script updates the title of a given video with it's current number of views, likes and comments
1
star
12

menukaonline

Just created this repo because I wanted to add a README.md to my GitHub profile
1
star
13

sound-synthesis-mini-project

Implementation of different musical sounds with the use of mathematical equations.
Python
1
star