添加Cookies数据库

v2.0.x
leiurayer 1 year ago
parent 781cd5b739
commit e4206d9e29

@ -0,0 +1,21 @@
using SQLite;
namespace Downkyi.Core.Database.Login;
[Table("cookies")]
public class Cookies
{
[PrimaryKey, AutoIncrement]
[Column("id")]
public long Id { get; set; }
[Indexed]
[Column("uid")]
public long Uid { get; set; }
[Column("key")]
public string Key { get; set; } = string.Empty;
[Column("value")]
public string Value { get; set; } = string.Empty;
}

@ -0,0 +1,79 @@
using Downkyi.Core.Storage;
using SQLite;
namespace Downkyi.Core.Database.Login;
public class LoginDatabase
{
private const SQLiteOpenFlags _flags =
SQLiteOpenFlags.ReadWrite |
SQLiteOpenFlags.Create |
SQLiteOpenFlags.SharedCache;
private readonly string _databasePath = Constant.Login;
private SQLiteAsyncConnection? _database;
private async Task Init()
{
if (_database is not null)
return;
_database = new SQLiteAsyncConnection(_databasePath, _flags);
await _database.CreateTableAsync<Cookies>();
await _database.CreateTableAsync<Users>();
}
// 增删查改
public async Task<int> AddCookiesAsync(Cookies cookies)
{
await Init();
var user = await _database!.Table<Users>()
.Where(i => i.Uid == cookies.Uid)
.FirstOrDefaultAsync();
if (user != null)
{
user.UpdateTime = DateTime.Now;
await _database.UpdateAsync(user);
}
else
{
var newUser = new Users
{
Uid = cookies.Uid,
UpdateTime = DateTime.Now,
CreateTime = DateTime.Now,
};
await _database.InsertAsync(newUser);
}
if (cookies.Id != 0)
return await _database.UpdateAsync(cookies);
else
return await _database.InsertAsync(cookies);
}
public async Task<int> DeleteCookiesAsync(Cookies cookies)
{
await Init();
return await _database!.DeleteAsync(cookies);
}
public async Task<int> DeleteCookiesByUidAsync(long uid)
{
await Init();
return await _database!.Table<Cookies>()
.DeleteAsync(i => i.Uid == uid);
}
public async Task<List<Cookies>> GetCookiesAsync(long uid)
{
await Init();
return await _database!.Table<Cookies>()
.Where(i => i.Uid == uid)
.ToListAsync();
}
}

@ -0,0 +1,21 @@
using SQLite;
namespace Downkyi.Core.Database.Login;
[Table("users")]
public class Users
{
[PrimaryKey, AutoIncrement]
[Column("id")]
public long Id { get; set; }
[Indexed, Unique]
[Column("uid")]
public long Uid { get; set; }
[Column("update_time")]
public DateTime UpdateTime { get; set; } = DateTime.Now;
[Column("create_time")]
public DateTime CreateTime { get; set; } = DateTime.Now;
}

@ -12,8 +12,7 @@
<PackageReference Include="Aria2cNet" Version="1.0.1" />
<PackageReference Include="Downkyi.BiliSharp" Version="0.0.3" />
<PackageReference Include="NLog" Version="5.3.2" />
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="SQLitePCLRaw.bundle_green" Version="2.1.8" />
<PackageReference Include="sqlite-net-sqlcipher" Version="1.9.172" />
</ItemGroup>
</Project>

Loading…
Cancel
Save