├── .github
└── workflows
│ └── static.yml
├── .gitignore
├── .idea
├── .gitignore
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── compiler.xml
├── dbnavigator.xml
├── deploymentTargetDropDown.xml
├── deploymentTargetSelector.xml
├── gradle.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── jpa-buddy.xml
├── jsonSchemas.xml
├── migrations.xml
├── misc.xml
├── php.xml
├── runConfigurations.xml
└── vcs.xml
├── LICENSE
├── README.md
├── app
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── lanzou
│ │ └── cloud
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── js
│ │ │ └── user.js
│ │ └── litepal.xml
│ ├── java
│ │ └── com
│ │ │ └── lanzou
│ │ │ └── cloud
│ │ │ ├── LanzouApplication.java
│ │ │ ├── LanzouGlideModule.java
│ │ │ ├── MainActivity.java
│ │ │ ├── adapter
│ │ │ ├── DownloadAdapter.java
│ │ │ ├── FileAdapter.java
│ │ │ ├── FileSelectorAdapter.java
│ │ │ ├── FolderListAdapter.java
│ │ │ ├── MainPageAdapter.java
│ │ │ ├── PathAdapter.java
│ │ │ ├── SimpleListAdapter.java
│ │ │ ├── TransmissionAdapter.java
│ │ │ ├── TransmissionViewHolder.java
│ │ │ └── UploadAdapter.java
│ │ │ ├── base
│ │ │ └── BaseActivity.java
│ │ │ ├── data
│ │ │ ├── Download.java
│ │ │ ├── FileInfo.java
│ │ │ ├── LanzouDownloadResponse.java
│ │ │ ├── LanzouFile.java
│ │ │ ├── LanzouFileResponse.java
│ │ │ ├── LanzouFolder.java
│ │ │ ├── LanzouFolderResponse.java
│ │ │ ├── LanzouPage.java
│ │ │ ├── LanzouSimpleResponse.java
│ │ │ ├── LanzouTask.java
│ │ │ ├── LanzouUploadResponse.java
│ │ │ ├── LanzouUrl.java
│ │ │ ├── LanzouUrlResponse.java
│ │ │ ├── Question.java
│ │ │ ├── SimpleItem.java
│ │ │ ├── SplitFile.java
│ │ │ ├── Upload.java
│ │ │ ├── UploadTask.java
│ │ │ └── User.java
│ │ │ ├── event
│ │ │ ├── FileActionListener.java
│ │ │ ├── OnDownloadListener.java
│ │ │ ├── OnFileIOListener.java
│ │ │ ├── OnItemClickListener.java
│ │ │ ├── OnItemLongClickListener.java
│ │ │ ├── OnUploadListener.java
│ │ │ └── Searchable.java
│ │ │ ├── network
│ │ │ ├── FileRequestBody.java
│ │ │ └── Repository.java
│ │ │ ├── service
│ │ │ ├── DownloadService.java
│ │ │ ├── LanzouService.java
│ │ │ └── UploadService.java
│ │ │ ├── ui
│ │ │ ├── LinearItemDecoration.java
│ │ │ ├── dialog
│ │ │ │ └── UserDialog.java
│ │ │ ├── download
│ │ │ │ ├── DownloadInfoActivity.java
│ │ │ │ └── DownloadListFragment.java
│ │ │ ├── file
│ │ │ │ ├── AbstractFileAction.java
│ │ │ │ ├── FileFragment.java
│ │ │ │ └── imple
│ │ │ │ │ └── FileActionImpl.java
│ │ │ ├── folder
│ │ │ │ └── FolderSelectorActivity.java
│ │ │ ├── me
│ │ │ │ └── MeFragment.java
│ │ │ ├── question
│ │ │ │ └── QuestionActivity.java
│ │ │ ├── resolve
│ │ │ │ └── ResolveFileActivity.java
│ │ │ ├── selector
│ │ │ │ ├── FileSelectorActivity.java
│ │ │ │ ├── FileSelectorFragment.java
│ │ │ │ ├── PhoneFileActivity.java
│ │ │ │ └── PhoneFileSelectorFragment.java
│ │ │ ├── setting
│ │ │ │ └── SettingActivity.java
│ │ │ ├── transmission
│ │ │ │ ├── TransmissionFragment.java
│ │ │ │ └── TransmissionListActivity.java
│ │ │ ├── upload
│ │ │ │ ├── ExternalUploadActivity.java
│ │ │ │ ├── UploadInfoActivity.java
│ │ │ │ └── UploadListFragment.java
│ │ │ └── web
│ │ │ │ └── WebActivity.java
│ │ │ └── utils
│ │ │ ├── ApkLoaderFactory.java
│ │ │ ├── DisplayUtils.java
│ │ │ ├── FileUtils.java
│ │ │ ├── SpUtils.java
│ │ │ ├── UpdateUtils.java
│ │ │ └── UriUtils.java
│ └── res
│ │ ├── color
│ │ └── color_card.xml
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── baseline_add_24.xml
│ │ ├── baseline_chevron_right_24.xml
│ │ ├── baseline_delete_outline_24.xml
│ │ ├── baseline_done_24.xml
│ │ ├── baseline_folder_24.xml
│ │ ├── baseline_get_app_24.xml
│ │ ├── baseline_home_24.xml
│ │ ├── baseline_insert_drive_file_24.xml
│ │ ├── baseline_pause_circle_filled_24.xml
│ │ ├── baseline_person_24.xml
│ │ ├── baseline_play_circle_filled_24.xml
│ │ ├── baseline_search_24.xml
│ │ ├── baseline_settings_24.xml
│ │ ├── baseline_share_24.xml
│ │ ├── baseline_sync_alt_24.xml
│ │ ├── bg_card.xml
│ │ ├── ic_corner_left.xml
│ │ ├── ic_corner_right.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── ic_select.xml
│ │ ├── ic_select_icon.xml
│ │ └── ic_toggle.xml
│ │ ├── layout
│ │ ├── activity_download_info.xml
│ │ ├── activity_external_upload.xml
│ │ ├── activity_file_selector.xml
│ │ ├── activity_folder_selector.xml
│ │ ├── activity_main.xml
│ │ ├── activity_phone_file.xml
│ │ ├── activity_question.xml
│ │ ├── activity_resolve_file.xml
│ │ ├── activity_setting.xml
│ │ ├── activity_transmission_list.xml
│ │ ├── activity_upload_info.xml
│ │ ├── activity_webview.xml
│ │ ├── content_header.xml
│ │ ├── dialog_create_folder.xml
│ │ ├── dialog_file_action.xml
│ │ ├── fragment_file.xml
│ │ ├── fragment_file_selector.xml
│ │ ├── fragment_me.xml
│ │ ├── fragment_phone_file_selector.xml
│ │ ├── fragment_transmission.xml
│ │ ├── fragment_transmission_list.xml
│ │ ├── item_list_file.xml
│ │ ├── item_list_file_selector.xml
│ │ ├── item_list_folder.xml
│ │ ├── item_list_left.xml
│ │ ├── item_list_right.xml
│ │ ├── item_list_simple.xml
│ │ ├── item_list_transmission.xml
│ │ ├── item_path.xml
│ │ ├── layout_button_upload.xml
│ │ └── window_download_file.xml
│ │ ├── menu
│ │ ├── menu_bottom.xml
│ │ ├── menu_file_selector.xml
│ │ └── menu_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-anydpi-v33
│ │ └── ic_launcher.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── values-land
│ │ └── dimens.xml
│ │ ├── values-night
│ │ ├── colors.xml
│ │ └── themes.xml
│ │ ├── values-w1240dp
│ │ └── dimens.xml
│ │ ├── values-w600dp
│ │ └── dimens.xml
│ │ ├── values
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── themes.xml
│ │ └── xml
│ │ ├── backup_rules.xml
│ │ ├── data_extraction_rules.xml
│ │ └── file_paths.xml
│ └── test
│ └── java
│ └── com
│ └── lanzou
│ └── cloud
│ ├── ExampleUnitTest.java
│ └── LanzouDownload.java
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── version.json
/.github/workflows/static.yml:
--------------------------------------------------------------------------------
1 | # Simple workflow for deploying static content to GitHub Pages
2 | name: Deploy static content to Pages
3 |
4 | on:
5 | # Runs on pushes targeting the default branch
6 | push:
7 | branches: ["master"]
8 |
9 | # Allows you to run this workflow manually from the Actions tab
10 | workflow_dispatch:
11 |
12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13 | permissions:
14 | contents: read
15 | pages: write
16 | id-token: write
17 |
18 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20 | concurrency:
21 | group: "pages"
22 | cancel-in-progress: false
23 |
24 | jobs:
25 | # Single deploy job since we're just deploying
26 | deploy:
27 | environment:
28 | name: github-pages
29 | url: ${{ steps.deployment.outputs.page_url }}
30 | runs-on: ubuntu-latest
31 | steps:
32 | - name: Checkout
33 | uses: actions/checkout@v4
34 | - name: Setup Pages
35 | uses: actions/configure-pages@v5
36 | - name: Upload artifact
37 | uses: actions/upload-pages-artifact@v3
38 | with:
39 | # Upload entire repository
40 | path: '.'
41 | - name: Deploy to GitHub Pages
42 | id: deployment
43 | uses: actions/deploy-pages@v4
44 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /captures
13 | .externalNativeBuild
14 | .cxx
15 | local.properties
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | xmlns:android
39 |
40 | ^$
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | xmlns:.*
50 |
51 | ^$
52 |
53 |
54 | BY_NAME
55 |
56 |
57 |
58 |
59 |
60 |
61 | .*:id
62 |
63 | http://schemas.android.com/apk/res/android
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | .*:name
73 |
74 | http://schemas.android.com/apk/res/android
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | name
84 |
85 | ^$
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 | style
95 |
96 | ^$
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | .*
106 |
107 | ^$
108 |
109 |
110 | BY_NAME
111 |
112 |
113 |
114 |
115 |
116 |
117 | .*
118 |
119 | http://schemas.android.com/apk/res/android
120 |
121 |
122 | ANDROID_ATTRIBUTE_ORDER
123 |
124 |
125 |
126 |
127 |
128 |
129 | .*
130 |
131 | .*
132 |
133 |
134 | BY_NAME
135 |
136 |
137 |
138 |
139 |
140 |
141 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/deploymentTargetDropDown.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/deploymentTargetSelector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
19 |
20 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.idea/jpa-buddy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/jsonSchemas.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/.idea/migrations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/php.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SplitLanzou
2 |
3 | 突破上传文件限制,**分割上传文件,第三方蓝奏云**
4 |
5 | > 特别说明:本项目为**蓝奏云(lanzou.com)的第三方客户端**,本项目不存储任何文件和资源。项目采用
6 | > 分割文件方式达到上传储存目的,任何用户二次开发本项目行为,**本项目概不负责**。
7 | > **请勿将本项目用于非法用途,否则一切后果由使用者自己承担。如本项目侵犯了原作者的版权,请立即联系我删除。**
8 |
9 | ## 联系我
10 |
11 | 1. gmail:jiangdongyu54@gmail.com
12 | 2. qq: 2475058223@qq.com
13 |
14 | ## 下载
15 |
16 | ### 1.最新发行版(release)
17 |
18 | > **以下版本不会自动更新,需要手动前往 github gitee 首页进行更新,如存在问题请提 issue**
19 |
20 | 1. [github release](https://github.com/Yu2002s/SplitLanzou/releases) **可能无法访问**
21 |
22 | 2. [gitee release](https://gitee.com/jdy2002/SplitLanzou/releases) **推荐**
23 |
24 | ### 2.其他版本下载
25 |
26 | > 以下版本比本项目**功能更加完善**,可以辅助本项目使用。但是**可能存在问题**,不会发布正式更新,后期可能修复问题,可在
27 | > App 内加入交流群获得更新
28 |
29 | 1. **可能存在问题** [LanzouCloud 下载](https://github.com/Yu2002s/LanzouCloud)
30 | |
31 | [云盘下载](https://jdy2002.lanzoue.com/b041496oj) (密码: 123456)
32 |
33 | 2. **下载目前有问题** [雨盘下载](https://jdy2002.lanzoue.com/b040cdb5g) (密码: hyf3)
34 |
35 | ## 项目
36 |
37 | 编译此项目需要的一些修改
38 |
39 | ### 本项目依赖环境:
40 |
41 | 1. jdk21
42 | 2. gradle8.11.1
43 | 3. AndroidStudio 2024.2.2 (AS 版本太高,jdk 也高,需要手动设置 jdk 版本)
44 |
45 | 其他环境可能无法成功编译
46 |
47 | ### 修改签名
48 |
49 | ```gradle
50 | // /app/build.gradle
51 | android {
52 | signingConfigs {
53 | debug {
54 | // 修改签名信息
55 | }
56 | release {
57 | // ...
58 | }
59 | }
60 | }
61 | ```
62 |
63 | ## 问题
64 |
65 | ~~1. 没有文件选择器上传文件~~
66 |
67 | > 解决办法: 使用外部文件管理器分享(可多选)文件,选择 SplitLanzou 上传文件。
68 | > 或者使用 [雨盘下载](https://jdy2002.lanzoue.com/b040cdb5g) (密码: hyf3)
69 |
70 | 2. 文件列表没有图标
71 |
72 | > 懒得做了
73 |
74 | 3. 可以分享 100M 文件嘛?
75 |
76 | > 支持,但是新用户注册的,只有一次下载机会,第二次网页下载会报错,需要对方也下载此 App
77 |
78 | ## 截图
79 |
80 | 文件管理截图,支持上传、下载、分享并显示**100m+**文件
81 |
82 |
83 |
84 |
85 |
86 | ## 关于
87 |
88 | 1. 开发时间较短,可能有一些 bug,欢迎提 issue。
89 | 2. App 不会自动更新,请前往本主页手动获取更新。
90 | 3. 代码全部开源,不用担心后门问题。
91 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.application'
3 | // id 'androidx.navigation.safeargs'
4 | }
5 |
6 | android {
7 | signingConfigs {
8 | debug {
9 | storeFile file('D:\\jdy2002\\appkey\\jdy.jks')
10 | storePassword 'jdy200255'
11 | keyAlias 'jdy2002'
12 | keyPassword 'jdy200255'
13 | }
14 | release {
15 | storeFile file('D:\\jdy2002\\appkey\\jdy.jks')
16 | storePassword 'jdy200255'
17 | keyAlias 'jdy2002'
18 | keyPassword 'jdy200255'
19 | }
20 | }
21 | namespace 'com.lanzou.cloud'
22 | compileSdk 34
23 |
24 | defaultConfig {
25 | applicationId "com.lanzou.cloud"
26 | minSdk 24
27 | targetSdk 34
28 | versionCode 10
29 | versionName "1.7.1"
30 |
31 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
32 | signingConfig signingConfigs.debug
33 | }
34 |
35 | buildTypes {
36 | release {
37 | minifyEnabled false
38 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
39 | }
40 | }
41 | compileOptions {
42 | sourceCompatibility JavaVersion.VERSION_1_8
43 | targetCompatibility JavaVersion.VERSION_1_8
44 | }
45 | buildFeatures {
46 | viewBinding true
47 | }
48 | }
49 |
50 | dependencies {
51 |
52 | implementation 'androidx.appcompat:appcompat:1.6.1'
53 | implementation 'com.google.android.material:material:1.7.0'
54 | implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
55 | // https://mvnrepository.com/artifact/androidx.recyclerview/recyclerview
56 | implementation 'androidx.recyclerview:recyclerview:1.3.0'
57 |
58 | implementation 'com.squareup.retrofit2:retrofit:2.9.0'
59 | implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
60 |
61 | implementation 'org.litepal.guolindev:core:3.2.3'
62 | implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
63 |
64 | implementation 'com.github.javakam:file.core:3.7.0@aar'
65 |
66 | // https://mvnrepository.com/artifact/com.github.bumptech.glide/glide
67 | implementation 'com.github.bumptech.glide:glide:4.11.0'
68 |
69 | annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
70 |
71 |
72 | testImplementation 'junit:junit:4.13.2'
73 | androidTestImplementation 'androidx.test.ext:junit:1.1.3'
74 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
75 | }
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/lanzou/cloud/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.lanzou.cloud;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.lanzou.cloud", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
20 |
21 |
22 |
35 |
40 |
43 |
44 |
45 |
47 |
48 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
61 |
64 |
67 |
70 |
72 |
74 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
86 |
91 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/app/src/main/assets/js/user.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | let disk = document.querySelector('.mydisk_bar');
3 | let username = disk.childNodes[0].data.trim();
4 | let src = document.querySelector('#mainframe').getAttribute('src');
5 | src = src.substring(src.lastIndexOf('u=') + 2);
6 | local_obj.saveUser(parseInt(src), username, document.cookie);
7 | })();
8 |
--------------------------------------------------------------------------------
/app/src/main/assets/litepal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lanzou/cloud/LanzouApplication.java:
--------------------------------------------------------------------------------
1 | package com.lanzou.cloud;
2 |
3 | import android.annotation.SuppressLint;
4 | import android.app.Application;
5 | import android.content.Context;
6 |
7 | import org.litepal.LitePal;
8 |
9 | import ando.file.core.FileOperator;
10 |
11 | /**
12 | * 第三方蓝奏云 (lanzou.com)
13 | * 支持上传 100M+ 文件
14 | */
15 | public class LanzouApplication extends Application {
16 |
17 | @SuppressLint("StaticFieldLeak")
18 | public static Context context;
19 |
20 | public static final String HOST = "https://pc.woozooo.com/";
21 | public static final String HOST_FILE = HOST + "mydisk.php";
22 |
23 | public static final String HOST_LOGIN = HOST + "account.php?action=login";
24 |
25 | public static final String API_URL = "http://api.jdynb.xyz:6400";
26 |
27 | public static final String SHARE_URL = "http://lz.jdynb.xyz/index.html";
28 |
29 | @Override
30 | public void onCreate() {
31 | super.onCreate();
32 | context = this;
33 | LitePal.initialize(this);
34 | FileOperator.INSTANCE.init(this, false);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lanzou/cloud/LanzouGlideModule.java:
--------------------------------------------------------------------------------
1 | package com.lanzou.cloud;
2 |
3 | import android.content.Context;
4 | import android.util.Log;
5 |
6 | import androidx.annotation.NonNull;
7 |
8 | import com.bumptech.glide.Glide;
9 | import com.bumptech.glide.GlideBuilder;
10 | import com.bumptech.glide.Registry;
11 | import com.bumptech.glide.annotation.GlideModule;
12 | import com.bumptech.glide.module.AppGlideModule;
13 | import com.lanzou.cloud.data.FileInfo;
14 | import com.lanzou.cloud.utils.ApkLoaderFactory;
15 |
16 | import java.io.InputStream;
17 |
18 | @GlideModule
19 | public class LanzouGlideModule extends AppGlideModule {
20 | @Override
21 | public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
22 | super.applyOptions(context, builder);
23 | }
24 |
25 | @Override
26 | public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
27 | // super.registerComponents(context, glide, registry);
28 | registry.prepend(FileInfo.class, InputStream.class, new ApkLoaderFactory(context));
29 | }
30 |
31 | @Override
32 | public boolean isManifestParsingEnabled() {
33 | return false;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lanzou/cloud/adapter/DownloadAdapter.java:
--------------------------------------------------------------------------------
1 | package com.lanzou.cloud.adapter;
2 |
3 | import android.view.View;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import com.lanzou.cloud.data.Download;
8 | import com.lanzou.cloud.databinding.ItemListTransmissionBinding;
9 | import com.lanzou.cloud.utils.FileUtils;
10 |
11 | import java.util.List;
12 |
13 | public class DownloadAdapter extends TransmissionAdapter {
14 |
15 | private final List downloads;
16 |
17 | public DownloadAdapter(List downloads) {
18 | this.downloads = downloads;
19 | }
20 |
21 | @Override
22 | public void onBindViewHolder(@NonNull TransmissionViewHolder holder, int position) {
23 | ItemListTransmissionBinding binding = holder.binding;
24 | Download download = downloads.get(position);
25 | binding.tvName.setText(download.getName());
26 | updateView(binding, download);
27 | }
28 |
29 | @Override
30 | public void onBindViewHolder(@NonNull TransmissionViewHolder holder, int position, @NonNull List