Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/menukaonline/goindex-extended
A Google Drive Index, which has a lot of extra features, running on Cloudflare Workers.
https://github.com/menukaonline/goindex-extended
cloudflare-workers goindex goindex-extended google-drive google-drive-index
Last synced: about 1 month ago
JSON representation
A Google Drive Index, which has a lot of extra features, running on Cloudflare Workers.
- Host: GitHub
- URL: https://github.com/menukaonline/goindex-extended
- Owner: menukaonline
- License: mit
- Created: 2021-01-30T17:32:11.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-12T07:37:38.000Z (8 months ago)
- Last Synced: 2024-08-02T16:43:40.998Z (4 months ago)
- Topics: cloudflare-workers, goindex, goindex-extended, google-drive, google-drive-index
- Language: JavaScript
- Homepage: https://demo.dudoo.workers.dev
- Size: 6.23 MB
- Stars: 444
- Watchers: 11
- Forks: 252
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - menukaonline/goindex-extended - A Google Drive Index, which has a lot of extra features, running on Cloudflare Workers. (JavaScript)
- project-awesome - menukaonline/goindex-extended - A Google Drive Index, which has a lot of extra features, running on Cloudflare Workers. (JavaScript)
README
## Notice on username change
Hi there! Thank you for visiting this repository.
Please note that my GitHub username has recently changed from [@cheems](https://github.com/cheems) to [@menukaonline](https://github.com/menukaonline). If you are looking for my other repositories, you can find them under my new username ([@menukaonline](https://github.com/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](https://github.com/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](https://github.com/menukaonline) ([@cheems](https://github.com/cheems))##
![Preview](https://raw.githubusercontent.com/cheems/goindex-extended/master/images/preview.png)
# GoIndex Extended - Google Drive Index[![Author: Cheems](https://img.shields.io/badge/Author-cheems-blue.svg)](https://github.com/cheems)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![Repo Size](https://img.shields.io/github/repo-size/cheems/goindex-extended?color=2fc29d&label=Repo%20Size)]()
[![Last Commit](https://img.shields.io/github/last-commit/cheems/goindex-extended?label=Last%20Commit)]()
[![Built with Cloudflare Workers](https://img.shields.io/badge/Built_with-Cloudflare%20Workers-1f425f?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAAABmJLR0QA/wD/AP+gvaeTAAADOUlEQVQ4jXVUz2scVRz/vNnN7qY16TY1LmJbYTHGUEIMafGgpTnoQUV7sfoHSGvv/qjSy2KhNIV4EBFjqYIo6sGIePJiEUGw2hpLU0xLYhOsoY0l1U12Z74/e5jsZCPtwDvMm/c+8/n1XsD/nvonw4fveWbiJbjtbM15vHKNfju2I+rI29rUTTcbKz575qv2vVH7S/zR8JOB5D2/fnELEKoAqjCtho7OvdgyyHBU4V6F2h6ofUFfPzFyVzCUNx3Nb+3ONadO98P9JoQAIYCbKDz4XDBid1G4CFwkb6bjdwRLJvfuh/moiyA4bZL5ny5DOAVTQnB5KHQNXVwDAkThrPviz3c/vwHMz4zmTeVEulABE9D0Z0NwWYC22MUobN9X9kSlxQ4iMJKTPjHSkYElS8lhsDzi3JKgcE6+hNrxjJ0kgMQ7ctv2TDkznAXOCoj2N6L4EAAE/+bxruZKcgVqFVeFqwGqcQ6hv3TowF+Y2TUFSQZhApgCiG40z7/bBZdONwPSsZRE3Bc16vFbLlLJJIrA2N7vfGV6IYSagVHLpAoBtHpfrvex341Tmalk7S3EOBJB5KCzprTTjxpMTrRMDYMHJmH2awamhMK2voedVVs/dxE4y8t5ZwXW5LkqoIZQCmFDZSQJUEplmgKONE1oKlMdboYILKfWu6NQohz/E7+dtf+XD14AxyMZMyHEf09dhkpurR5psiynw9JYf1exyFdcrWLEMFYIsbjZcOWpyT9QmroAagysswqLK+c+7nFIEZoG4GZLWpC+qPfITN1Jj2lM0EQgRDCWvLG+g83TB5GsDqz7JWgu/LzoSkVwZj7AUut5c/nfCAC6G/MTmsisJgQlgZHAFKNIVo6C40yeC8/TtfNDGUhqzUz39eVTWWlDDWLCNWWBsUDFUH706TnE9QegaYIwxersjw2o5rIERWAsr4cPwRvOZuX48qeudsHEgI4Sbd6+q9LOyphmafHSQFu34KI/9IzVv73jraER3nBzu3f3/qto3ipnXrnj1qXvS1BLK5GeSwlKr971Cto5vvpdCNFrnVvvX4TEcxCag9CcNP47m9z4s8gki8pyFaJnofpieZzPte+/DbyhqHE2i7F2AAAAAElFTkSuQmCC)](https://workers.cloudflare.com/)
[![Written in JavaScript](https://img.shields.io/badge/Written_in-JavaScript-000?logo=javascript&logoColor=000&labelColor=F7DF1E)](https://www.javascript.com/)Combining the power of [Cloudflare Workers](https://workers.cloudflare.com/) and [Google Drive](https://www.google.com/drive/) will allow you to index your files on the browser on Cloudflare Workers.
## π Demo
- **π€ Dark Theme**: _https://dark-demo.dudoo.workers.dev_
- **π€ Light Theme**: _https://light-demo.dudoo.workers.dev_
πΈ Screenshots![Screenshot-1](https://raw.githubusercontent.com/cheems/goindex-extended/master/images/ss-1.png)
![Screenshot-2](https://raw.githubusercontent.com/cheems/goindex-extended/master/images/ss-2.png)
![Screenshot-3](https://raw.githubusercontent.com/cheems/goindex-extended/master/images/ss-3.png)
![Screenshot-4](https://raw.githubusercontent.com/cheems/goindex-extended/master/images/ss-4.png)
![Screenshot-5](https://raw.githubusercontent.com/cheems/goindex-extended/master/images/ss-5.png)
![Screenshot-6](https://raw.githubusercontent.com/cheems/goindex-extended/master/images/ss-6.png)## β¨ 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](https://dudoo.me/wikis).
If you are comfortable reading comments in the code, here you go: [goindex-extended/index.js](https://github.com/cheems/goindex-extended/blob/master/index.js). (Note: Don't edit the code after the [line:123](https://github.com/cheems/goindex-extended/blob/master/index.js#L123) 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](https://github.com/cheems/goindex-extended/blob/master/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](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cheems/goindex-extended/blob/master/template/GoIndex_Extended_Code_Generator_with_rclone_credentials.ipynb)
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](https://www.cloudflare.com/)
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](https://github.com/cheems/goindex-extended#-configure-search-functionality-for-folders)## πΉ Deployment
1. Go enable [Google Drive API](https://console.cloud.google.com/marketplace/product/google/drive.googleapis.com)
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](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cheems/goindex-extended/blob/master/template/GoIndex_Extended_Code_Generator_with_custom_credentials.ipynb)
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](https://workers.cloudflare.com/)
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](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cheems/goindex-extended/blob/master/generators/Folder_Id_List_Generator.ipynb#scrollTo=vdf8HtfeVHPc)
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
- GitHub is recommended
- You can make the file available public since it is fully encrypted
- Sample folder id list file can be found here: [goindex-extended/sample-files/sample-folder-id-list.txt](https://github.com/cheems/goindex-extended/blob/master/sample-files/sample-folder-id-list.txt)
7. Get the raw link to that file and put it in the index code: [9th line](https://github.com/cheems/goindex-extended/blob/master/index.js#L9)
- 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](https://github.com/donwa)** : for writing such a great script
- **[yanzai](https://github.com/yanzai) & all initial contributors** : for contributing to the project
- **[5MayRain](https://github.com/5MayRain)** : for implementing Nexmoe theme### Wiki & Readme:
- **[LeeluPradhan](https://github.com/LeeluPradhan)**
- **[tks18](https://github.com/tks18)**Β Β Β Β Took some stuff from their repos for setting up the README.md file and the Wiki. So thanks! π
## β LICENSE
**_[GoIndex - Extended](https://github.com/cheems/goindex-extended) by [Cheems(AKA Dudu)](https://github.com/cheems/) is licensed under the [MIT License](https://opensource.org/licenses/MIT), which you can find in the [goindex-extended/LICENSE](https://github.com/cheems/goindex-extended/blob/master/LICENSE) file._**