# GoIndex-theme-acrou Combining the power of [Cloudflare Workers](https://workers.cloudflare.com/) and [Google Drive](https://www.google.com/drive/) will allow you to index you files on the browser on Cloudflare Workers. [goindex/index.js](https://github.com/Aicirou/goindex-theme-acrou/go2index) is the content of the Workers script. This theme's goindex is currently based on [yanzai/goindex](https://github.com/yanzai/goindex/) [README](README.md) | [δΈ­ζ–‡ζ–‡ζ‘£](README_zh.md) ## Demo Acrou: [https://oss.achirou.workers.dev/](https://oss.achirou.workers.dev/) ## Features - [x] πŸ‘‘ Page-level caching,browser forward and backward without reloading (MAC users have a better experience with the trackpad) - [x] πŸ—‚ Multi drive switching - [x] πŸ” Http Basic Auth - [x] 🎨 Grid view mode(File Preview) - [x] 🎯 Paging load - [x] 🌐 I18n(multi-language) - [x] πŸ›  Markdown/Html render (Maybe it can be your blog) - [x] πŸ–₯ Video Online(mp4,mkv,webm,flv,m3u8,mov,m4v) - [x] πŸ•Ή Support for custom video player (API) - [x] 🎧 Audio Online - [x] πŸš€ Faster speed ## TODO - [ ] More file format preview - [ ] Let goindex be more than just a directory index ## Quick Deployment 1. Open https://install.achirou.workers.dev or https://goindex-quick-install.glitch.me 2. Auth and get the code 3. Deploy the code to [Cloudflare Workers](https://www.cloudflare.com/) ## Deployment 1. Open [Google Drive API](https://console.developers.google.com/apis/api/drive.googleapis.com/overview) 2. Create a [OAuth client ID](https://console.developers.google.com/apis/credentials/oauthclient) 3. Install [rclone](https://rclone.org/downloads/) software locally 4. Get `refresh_token ` with `rclone` 5. Download `index.js` in https://github.com/Aicirou/goindex-theme-acrou/tree/master/go2index and replace `client_id`,`client_secret`,`refresh_token` for what you just got. 6. Deploy the code to [Cloudflare Workers](https://www.cloudflare.com/) > If you write a good article and want to share it with others, please submit Issues and I will post the link here. ## Options ### Video | Option | Type | Default | Description | | ------------ | -------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | `api` | String | `''` | External video player api. When this value is not null, all of the following options do not work | | `autoplay` | Boolean | `true` | When set to true, the video plays automatically, depending on whether the browser supports the | | `invertTime` | Boolean | `false` | Display the current time as a countdown rather than an incremental counter. | | `controls` | Array, Function or Element | `['play-large', 'restart', 'play', 'progress', 'current-time', 'duration', 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', 'download', 'fullscreen']` | Which buttons are displayed in the control bar. See more [CONTROLS.md](https://github.com/sampotts/plyr/blob/master/CONTROLS.md#using-default-controls) | | `settings` | Array | `['quality', 'speed', 'loop']` | You can specify which settings to show in the menu | For more option, see plyr [options](https://github.com/sampotts/plyr#options) ### Audio | Option | Type | Default | Description | | ----------- | ------- | ---------- | ------------------------------------------------------------ | | `container` | String | `.aplayer` | No support for changes | | `fixed` | Boolean | `true` | No support for changes | | `autoplay` | Boolean | `false` | audio autoplay | | `loop` | String | `'all'` | player loop play, values: 'all', 'one', 'none' | | `order` | String | `'list'` | player play order, values: 'list', 'random' | | `preload` | String | `'auto'` | values: 'none', 'metadata', 'auto' | | `volume` | Number | `0.7` | default volume, notice that player will remember user setting, default volume will not work after user set volume themselves | | `audios` | Array | `[]` | Playlists can be preset. [FAQ](#FAQ) | For more option, see APlayer [options](https://aplayer.js.org/#/home?id=options) ## FAQ > How do I change the way the list is sorted? Modify line 636 of the code or search for `params.orderBy` ```javascript - params.orderBy = "folder,name,modifiedTime desc"; οΌ‹ params.orderBy = "modifiedTime desc"; ``` > How to preset an audio playlist? Audio option add `audios` ``` audio: { audios: [ { name: "Mojito", artist: "周杰伦", url: "https://xx.mp3", lrc: "https://xx.lrc", cover: "https://xx.jpg" } ] } ``` ## Change log ### v2.0.8 - Fix image file actions does not work [#100](https://github.com/Aicirou/goindex-theme-acrou/issues/100) - Fix misjudged file to image format [#88](https://github.com/Aicirou/goindex-theme-acrou/issues/88) - Fix more than 10 drive not working [#59](https://github.com/Aicirou/goindex-theme-acrou/issues/59) [#85](https://github.com/Aicirou/goindex-theme-acrou/issues/85) - Add video default player([plyr](https://github.com/sampotts/plyr)) [#22](https://github.com/Aicirou/goindex-theme-acrou/issues/22) [#38](https://github.com/Aicirou/goindex-theme-acrou/issues/38) - Add audio player ([APlayer](https://github.com/MoePlayer/APlayer)) [#77](https://github.com/Aicirou/goindex-theme-acrou/issues/77) - Add copy button to video page - Add [NProgress](https://github.com/rstacruz/nprogress) - Add language cache cleanup - Add shortcut can't download tip [#76](https://github.com/Aicirou/goindex-theme-acrou/issues/76) - Markdown displays rendered html by default - CLI Delete prefetch preload of lazy load module - Delete fontawesome5 ### v2.0.5 - Add clean file cache - Support for custom video player (API) - Beautify: the grid mode file shows icon when no preview is shown - Beautify: Adjust the HEAD.md render position - Solve the problem that files that can't be previewed can't be downloaded directly by clicking [#30](https://github.com/Aicirou/goindex-theme-acrou/issues/30) - Solve the problem that the file name cannot be opened [#20](https://github.com/Aicirou/goindex-theme-acrou/issues/20) - Solve the problem that switching pages will fall back in the current page loading [#37](https://github.com/Aicirou/goindex-theme-acrou/issues/37) (Thanks [@PedroZhang](https://github.com/PedroZhang) Help to find out the cause of the problem) ### v2.0.0 - Program changed to SPA(single page application) - Add page level cache(Browser forward and backward do not refresh seconds to load, and Mac users have a better experience of using touch pad) - Add http basic auth(Each drive letter can be configured with a user name and password separately, which can protect all sub files and sub folders under the drive) - Add grid view mode(File preview) - Add paging load - Add i18n - Add html render - Add render folder/file description - Add optional configuration - Support quick deployment - Support PDF Online preview - Replace text editor - Solve the problem of URL encoding [#20](https://github.com/Aicirou/goindex-theme-acrou/issues/20) [#23](https://github.com/Aicirou/goindex-theme-acrou/issues/23) [#25](https://github.com/Aicirou/goindex-theme-acrou/issues/25) - Solve other known problems ### v1.x - Support multi disk switching - Add version detection - Optimize search results - Optimize page display ## About At the beginning of this project, it was just to satisfy my personal perception and experience development. When this project reaped the first start, the first fork and the first issues, and then everyone began to make suggestions, I had the power to update. Thank you very much for your support. Now we have version 2.0. ## Lisense [MIT](LICENSE)