开放登录/注册

master
fengyuecanzhu 4 years ago
parent 6cdc5effe0
commit 26196bbc66
  1. 6
      app/release.md
  2. 7
      app/src/main/assets/updatelog.fy
  3. 15
      app/src/main/java/xyz/fycz/myreader/common/URLCONST.java
  4. 15
      app/src/main/java/xyz/fycz/myreader/model/user/UserService2.kt
  5. 4
      app/src/main/java/xyz/fycz/myreader/ui/activity/AuthEmailActivity.kt
  6. 29
      app/src/main/java/xyz/fycz/myreader/util/utils/FileUtils.java
  7. 2
      app/version_code.properties

@ -1,3 +1,3 @@
* 1、优化搜索键盘自动弹出体验
* 2、新增书籍内容搜索结果自动保存
* 3、新增书籍内容搜索结果备份与恢复
* 1、开放用户登录\注册入口及同步书架(在v1.9.3版本关闭),感谢[@黑白人生]提供的服务器
* 2、新增邮箱验证(用于找回密码),之前注册的帐号登录时需要绑定邮箱
* 3、webdav同步书架改为从webdav恢复

@ -1,3 +1,10 @@
2021.12.11
风月读书v2.2.8
更新内容:
1、开放用户登录\注册入口及同步书架(在v1.9.3版本关闭),感谢[@黑白人生]提供的服务器
2、新增邮箱验证(用于找回密码),之前注册的帐号登录时需要绑定邮箱
3、webdav同步书架改为从webdav恢复
2021.12.07
风月读书v2.2.6
更新内容:

@ -4,16 +4,16 @@ import xyz.fycz.myreader.util.SharedPreUtils;
public class URLCONST {
public static final String OFFICIAL_WEB = "https://reader.fycz.tk/";
public static final String OFFICIAL_WEB = "https://reader." + getDefaultDomain() + "/";
public static String APP_DIR_UR = "https://www.lanzous.com/b00ngso7e";
public static String LAN_ZOUS_URL = "https://fycz.lanzoui.com";
//字体下载
public static final String FONT_DOWNLOAD_URL = "https://novel.fycz.xyz/app/fonts/";
public static final String FONT_DOWNLOAD_URL = "https://novel." + getDefaultDomain() + "/app/fonts/";
public static final String APP_WEB_URL = "https://fyreader.fycz.xyz/";
public static final String APP_WEB_URL = "https://fyreader." + getDefaultDomain() + "/";
public static final String BAI_DU_SEARCH = "https://m.baidu.com/s?word={key}";
@ -21,10 +21,8 @@ public class URLCONST {
public static final String YOU_DAO_SEARCH = "http://m.youdao.com/dict?le=eng&q={key}";
public static final String DEFAULT_DOMAIN =
SharedPreUtils.getInstance().getString("domain", "fycz.tk");
public static final String FY_READER_URL = "https://fyreader." + DEFAULT_DOMAIN;
public static final String FY_READER_URL = "https://fyreader." + getDefaultDomain();
public static final String AD_URL = FY_READER_URL + "/ad";
public static final String LOG_UPLOAD_URL = FY_READER_URL + "/logUpload";
@ -38,5 +36,10 @@ public class URLCONST {
public static final String QQ_SKM = DONATE + "/qq_skm.png";
public static final String QUOTATION = "https://v1.hitokoto.cn/?encode=json&charset=utf-8";
public static String getDefaultDomain() {
return SharedPreUtils.getInstance().getString("domain", "fycz.tk");
}
}

@ -1,18 +1,15 @@
package xyz.fycz.myreader.model.user
import io.reactivex.ObservableSource
import io.reactivex.Single
import io.reactivex.SingleOnSubscribe
import io.reactivex.SingleSource
import io.reactivex.functions.Function
import net.lingala.zip4j.ZipFile
import net.lingala.zip4j.model.UnzipParameters
import okhttp3.MediaType
import okhttp3.RequestBody
import xyz.fycz.myreader.application.App
import xyz.fycz.myreader.common.APPCONST
import xyz.fycz.myreader.common.URLCONST
import xyz.fycz.myreader.entity.StrResponse
import xyz.fycz.myreader.model.storage.Backup
import xyz.fycz.myreader.model.storage.Restore
import xyz.fycz.myreader.model.storage.Restore.restore
@ -25,13 +22,14 @@ import java.io.File
import net.lingala.zip4j.model.enums.EncryptionMethod
import net.lingala.zip4j.model.ZipParameters
import xyz.fycz.myreader.base.observer.MySingleObserver
/**
* @author fengyue
* @date 2021/12/9 10:17
*/
object UserService2 {
fun login(user: User): Single<Result> {
return Single.create(SingleOnSubscribe<Result> {
val mediaType = MediaType.parse("application/x-www-form-urlencoded")
@ -112,12 +110,13 @@ object UserService2 {
isEncryptFiles = true
encryptionMethod = EncryptionMethod.AES
}
var zipFile = File(APPCONST.FILE_DIR + "webBackup.zip")
if (zipFile.exists()) zipFile.delete()
ZipFile(
APPCONST.FILE_DIR + "webBackup.zip",
CyptoUtils.decode(APPCONST.KEY, user.password).toCharArray()
)
.addFolder(inputFile, zipParameters)
val zipFile = FileUtils.getFile(APPCONST.FILE_DIR + "webBackup.zip")
).addFolder(inputFile, zipParameters)
zipFile = FileUtils.getFile(APPCONST.FILE_DIR + "webBackup.zip")
FileUtils.deleteFile(inputFile.absolutePath)
val ret = OkHttpUtils.upload(
URLCONST.USER_URL + "/do/bak?" +
@ -126,7 +125,7 @@ object UserService2 {
zipFile.absolutePath,
zipFile.name
)
zipFile.delete()
if (!App.isDebug()) zipFile.delete()
it.onSuccess(GSON.fromJson(ret, Result::class.java))
}
}).compose { RxUtils.toSimpleSingle(it) }

@ -1,7 +1,6 @@
package xyz.fycz.myreader.ui.activity
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.text.Editable
import android.view.View
@ -18,12 +17,9 @@ import xyz.fycz.myreader.common.APPCONST
import xyz.fycz.myreader.databinding.ActivityAuthEmailBinding
import xyz.fycz.myreader.model.user.Result
import xyz.fycz.myreader.model.user.User
import xyz.fycz.myreader.model.user.UserService2
import xyz.fycz.myreader.model.user.UserService2.bindEmail
import xyz.fycz.myreader.model.user.UserService2.register
import xyz.fycz.myreader.model.user.UserService2.resetPwd
import xyz.fycz.myreader.model.user.UserService2.sendEmail
import xyz.fycz.myreader.model.user.UserService2.writeUsername
import xyz.fycz.myreader.ui.dialog.DialogCreator
import xyz.fycz.myreader.ui.dialog.LoadingDialog
import xyz.fycz.myreader.util.CyptoUtils

@ -209,19 +209,16 @@ public class FileUtils {
//获取文件夹
File[] dirs = file.listFiles(
new FileFilter() {
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory() && !pathname.getName().startsWith(".")) {
return true;
}
//获取txt文件
else if (pathname.getName().endsWith(".txt")) {
txtFiles.add(pathname);
return false;
} else {
return false;
}
pathname -> {
if (pathname.isDirectory() && !pathname.getName().startsWith(".")) {
return true;
}
//获取txt文件
else if (pathname.getName().endsWith(".txt")) {
txtFiles.add(pathname);
return false;
} else {
return false;
}
}
);
@ -316,10 +313,14 @@ public class FileUtils {
public static void write(Context context, String fileName, String content) {
if (content == null)
content = "";
write(context, fileName, content.getBytes());
}
public static void write(Context context, String fileName, byte[] content) {
try {
FileOutputStream fos = context.openFileOutput(fileName,
Context.MODE_PRIVATE);
fos.write(content.getBytes());
fos.write(content);
fos.close();
} catch (Exception e) {
e.printStackTrace();

@ -1,3 +1,3 @@
#Fri Jun 18 21:45:31 CST 2021
VERSION_CODE=227
VERSION_CODE=228
NEED_CREATE_RELEASE=false

Loading…
Cancel
Save