Giter Site home page Giter Site logo

menukaonline / goindex-extended Goto Github PK

View Code? Open in Web Editor NEW
445.0 11.0 252.0 6.38 MB

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

Home Page: https://demo.dudoo.workers.dev

License: MIT License

JavaScript 94.67% Jupyter Notebook 5.08% CSS 0.25%
google-drive google-drive-index cloudflare-workers goindex goindex-extended

goindex-extended's Introduction

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.

goindex-extended's People

Contributors

cyb3r-jak3 avatar menukaonline avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

goindex-extended's Issues

This is based on goindex not GDindex

Kindly mention it clearly on what platform its built on?
you have mentioned GDindex but i guess its based on goindex, if its built on goindex than can you make it or create new repository for GDindex?
bcoz my bot requires GDindex and it doesnt work on goindex.
I really love this theme and wanna use it.
thanks

Display Filename while vieweing a video

While watching any video , we just have the player itself and at below download link is present . It would make so much sense to have the filename mentioned below the player so as to get an idea what really is being played at the moment

Need feature as domain restriction

Hi dev,
Nice app. does it possible with domain restriction?

because all link is direct and anyone can use the link by iframe for their site.

Important question about link Drive protection.

Let's say i share a Drive link using the Worker, ppl will not be able to report my Drive link because it's hided behind the worker one, it's correct?

I'm asking because i'm tired of the Shared Drives getting deleted (the ones you can generate in some webs), so i'm thinking on just using my own one, i have in my Workspace Sub. but want to be sure if my account will not be in danger if i use Worker to hide the real Drive link.

I know CF maybe could delete my account, but in that case i just make a new one.

PD: For what i read this repo have a feature so ppl can't spoof the original Drive link.
Screenshot_3

UnicodeEncodeError

I run everything correctly and facing this error. How can I solve it.
Screenshot_20211223-001133798

#feature_request

Global search option ( Search from all td & my drive ) , Also parsing all files by their index links directly. So don't have to depend on google login .

[Question] Copy all links at once.

How i can copy all links at once instead one by one?

Screenshot_14

Thx in advance.

PD: I don't want to share the entire folder, i have it password protected, i share link by link.

[FEATURE REQUEST] Grid view with thumbnail

I'm wondering if it's possible to add grid view with thumbnail preview for images / videos something like this?
image_2021-12-17_144222

So i'm currently using goindex acrou, and i found yours with in my opinion have better ui layout than acrou.
I kinda want to switch but i have this folder full of photos and vids.

[FEATURE REQUEST] Better login form

Hi cheems, before everything I would like to thank you for this amazing version of GoIndex.

I would like to ask if it would be possible to get a better login form for the authentication.
I'm using Bitwarden as password manager (and probably I'm not the only one) and seems it has some problems with the pop-up in browser. It can't understand it's a form with a login so it can't neither auto-fill.
I guess it would be better if the form was inside the page, not as a pop-up.

All GoIndex fork have this issue, so I wonder if you could make a different login method.

Thanks in advance if you can help me :D

Not Working, PLZ FIX

hi;
after recent update v1.3.6 it only keeps loading and nothing shows up so kindly have a look and fix it.
i replaced entire code with new one but still not wirking

Services account

please add the function to be able to use services_acounts, and if possible multiple refresh_tokens to add the download limit
or if it is possible to add a function where you from X to X hours it changes the linked account specifying several .....
that would make you able to download more than 750gb a day

Stream in App, Stream MKV directly problem

It seems that the MKV with multi subs or audios can't be loaded. And some MKV can't load the video either.
Secondly, I can't use MXPlayer on my phone to network stream the video.
That will be so extremely nice if you change the player to Plyr, can stream all the MKV in web with captions <3 Thank you for your open source!

after a while index stops loading files

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '0')
at googleDrive._file (VM3 worker.js:444)
at async googleDrive.file (VM3 worker.js:422)
at async handleRequest (VM3 worker.js:254)
_file @ worker.js:444
Promise.then (async)
(anonymous) @ worker.js:136
this error occurs

Suggestions and Changes That Should be Done To Make this Index More Dynamic

  • 1 move from Dplayer To Playr -- cuz Dplayer base repo Stuck on 2020 while Plyr is updated once/twice in a Week

  • 2 add icons for video audio document pdf docs etc etc like Bhadoos index

  • 3 Add service account support

  • 4 fix themes

  • 5 If Possible Add support for TMDB and Anilist api support for movies, tv-series and anime

  • 6 Add the ability to set whether google drive videos will be transcoded or not (by deault it transcoded i guess)

You can check Bhadoos repo and Libdrive Repo for the suggestions i said above

thank you

[Question] Remote URL Upload?

From my complete ignorance, I wonder...

It's possible to add a Remote URL Upload function or the INDEX only replicate the same functions that G. Drive have?

[Question] protect_file_link.

vvvvvvvvvvvvvv

When I activate this, shouldn't it ask for a user/password when someone try to download the file trough download link?

Because if that is the case, it's not asking for anything.

PD: Sorry, my bad, it's working fine.

DMCA question

Hi! It's just a question. I'm wondering if my Google Drive could ever getting dmca'd by using GoIndex.
I supuse CloudFlare could close my account, which wouldn't be a problem since I can create other account and the only information about my Google Drive is just my API.

Worker stop working, this is the error i get...

Screenshot_1

How i can fix it?

And the Worker itself never end loading...

Screenshot_2

Ok, I deleted all the code and replaced it with the last one, and now it loads.

But still getting that 50Ms warning in the editor.

[FEATURE REQUEST] Option to hide a specific folder.

I know we already have a password protected folder feature, But its nice to have an option to also hide a specific folder, maybe like the .password file we put in directory, .hiddenfolder file maybe then put the list of folder google drive id or whichever unique or easy attribute we want to hide, like this
["Google drive folder id 1", "Google drive folder id 2", "Google drive folder id 3"]

Regards

[BUG] UI

I noticed that when the folder/file name is too long the item view is messed up, also the directory is overlapping. And if I changed the color to different color the hover color of the directory tab is still blue.

Version: 1.3.6

image

Suggestion: Create Todo list on readme to prevent feature suggestion if already working on that feature.

I really hope that the video player is change to Plyr in the next update, also updated icons

Regards

Failed to get the target path

Untitled
Every time getting this error when searched file/folder open'
Failed to get the target path
It may be because this item does not exist in the Folder! It may also be because the file [Shared with me] has not been added to Personal Drive!

[PROBLEM] Failed to get the target path

Hi cheems,
I am using the latest version which is Version: 1.4.1 and I'm facing the following issue:

The search works but when I click on the searched content it says:

Failed to get the target path
It may be because this item does not exist in the Folder! It may also be because the file [Shared with me] has not been added to Personal Drive!
image

I have also tried to do the "Configure Search Functionality for Folders" but when I do that it says:

[No FOLDER root type Found]
Dude, you don't need to run this if you didn't add any folder to index!
image

Please tell me if there's an solution for it!

Refresh Issuee

Dude, it's design is cool. But it got refresh issue. Manytimes when we open folders, we need to refresh it everytime.

readme.md is kinda broke

Screenshot (3218)

it used to work fine on Bhadoos Index but now i am seeing this broke any fixes or suggestions?

<h2>Hola Peepz Welcome to Google Drive Index By MirrorLeech πŸ™ˆ</h2> <h2>Have FunπŸ˜€πŸ‘‹</h2>

<div align="center">

<h1>Presenting a Google Drive Index By Amirul Andalib</h1>

<a href="https://mirrorleech.ml/0:/BotUploads/" target="_blank"><img src="https://shields.io/badge/%F0%9F%97%83-ALL--FILES--HERE%F0%9F%92%BD-blue?logo=&style=for-the-badge" alt="MirrorLeech" style="width: 400px; height:;" width="400" height="" /></a></h1>

<a href="https://t.me/MirroLeech" target="_blank"><img src="https://img.shields.io/badge/Telegram-Join%20Telegram%20Group-blue.svg?logo=telegram" alt="MirrorLeech" style="width: 400px; height:;" width="400" height="" /></a></h1> <div align="center">

README issue

Index works fine without README or HEAD
after adding both or either one of them, it keeps loading and doesnt work
it was fine few days ago
plz fix it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.