-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* [add] - better-sqlite3 * [add] - @types/better-sqlite3 * [change] - authLoginをbetter-sqlite3化 * [fix] - better-sqlite3のデータ無かった時の型が違っていた * [change] - fetchUserをbetter-sqlite3へ * [change] - 変数名 * [add] - コメント * [change] - checkSessionをbetter-sqlite3へ * [change] - こだわり * [fix] - ユーザー情報のパース忘れてた * [add] - authRegisterをbetter-sqlite3へ * [change] - changePasswordをbetter-sqlite3へ * [fix] - 忘れてた * [change] - fetchSessionをbetter-sqlite3へ * [remove] - また忘れてた * [change] - changeSessionNameをbetter-sqlite3へ * [change] - sessionLogoutをbetter-sqlite3へ * [remove] - ログ無効化 * [add] - type * [change] - createChannelをbetter-sqlite3へ * [change] - チャンネル取得関数の処理方法改善 * [remove] - 不要なログ * [change] - roleCheckをbetter-sqlite3へ * [change] - エラーコード変更 * [change] - deleteChannelをbetter-sqlite3へ * [change] - updateChannelをbetter-sqlite3へ * [remove] - sqlite3のコード * [change] - fetchChannelをbetter-sqlite3へ * [change] - fetchChannelListをbetter-sqlite3へ * [change] - joinChannelをbetter-sqlite3へ * [remove] - 忘れてた * [change] - leaveChannelをbetter-sqlite3へ * [add] - チャンネル作成時に履歴テーブルを作るように * [change] - saveMessageをbetter-sqlite3へ * [change] - genLinkPreviewをbetter-sqlite3へ * [change] - deleteMessageをbetter-sqlite3へ * [add] - type付け * [change] - editMessageをbetter-sqlite3へ * [change] - fetchHistoryをbetter-sqlite3へ * [remove] * [change] - 変数名 * [change] - reactMessageをbetter-sqlite3へ * [add] - コメント * [change] - setMessageReadTimeをbetter-sqlite3へ * [change] - getMessageReadTimeをbetter-sqlite3へ * [remove] - getMessageReadTimeからasyncを削除 * [change] - fetchFileIndexをbetter-sqlite3へ * [change] - fetchFileInfoをbetter-sqlite3へ * [change] - deleteFileをbetter-sqlite3へ * [remove] - await * [change] - fetchFoldersをbetter-sqlite3へ * [change] - 変数名とコメント * [change] - calcFullFolderSizeをbetter-sqlite3へ * [remove] - ログ * [change] - toggleFileIsPublicをbetter-sqlite3へ * [remove] - await * [change] - createFolderをbetter-sqlite3へ * [change] - deleteFoldersをbetter-sqlite3へ * [fetchUserをasyncじゃなくした * [remove] - await * [change] - fetchMessageをbetter-sqlite3へ * [change] - fetchOnlineUsersをbetter-sqlite-3へ * [remove] - await * [fix] - ファイル名 * [change] - addUserOnlineをbetter-sqlite3へ * [remove] - 不要なimport * [change] - fetchRolesをbetter-sqlite3へ * [remove] - await * [change] - searchRoleをbetter-sqlite3へ * [change] - 変数名 * [change] - fetchRoleSingleをbetter-sqlite3へ * [change] - addRoleをbetter-sqlite3へ * [change] - roleCheckからasync削除 * [change] - calcRoleUserのelse省略 * [remove] - ロール系関数のasync削除 * [change] - unlinkRoleをbetter-sqlite3へ * [change] - createRoleをbetter-sqlite3へ * [change] - updateRoleをbetter-sqlite3へ * [change] - deleteRoleをbetter-sqlite3へ * [change] - Server系処理のコード整理 * [change] - fetchUserConfigをbetter-sqlite3へ * [remove] - 不要なログ * [change] - fetchUserChannelOrderをbetter-sqlite3へ * [change] - fetchUserInboxをbetter-sqlite3へ * [change] - removeFromUserInboxをbetter-sqlite3へ 削除キューシステムは念のため残す * [change] - saveUserConfigをbetter-sqlite3へ * [change] - saveUserChannelOrderをbetter-sqlite3へ * [change] - fetchUserAllをbetter-sqlite3へ * [change] - searchUserをbetter-sqlite3へ * [change] - changeUserNameをbetter-sqlite3へ * [change] - 自分標的のBAN時のエラーコード変更 * [change] - banUserをbetter-sqlite3へ * [change]- pardonUserをbetter-sqlite3へ * [change] - removeUserOnlineBySocketIdをbetter-sqlite3へ * [remove] - 不要なファイル * Biome Check * [change] - uploadfileをbetter-sqlite3へ * Biome Check fetchfile * Biome Check downloadfile * [add] - node: * [change] - Fileからawait削除 * [remove/change] - Message系Socketハンドラからasyncとawait排除 * [remove] - ここもいらない * [remove] - File系Socketハンドラからawaitとasync排除 * [remove] - Channel系Socketハンドラからawaitとasync排除 * [remove] - User系Socketハンドラからawaitとasync排除 * [remove] - Server系Socketハンドラからasyncとawait排除 * [change] - auth系Socketハンドラからawaitとasync排除
- Loading branch information
Showing
77 changed files
with
2,213 additions
and
2,633 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,59 +1,56 @@ | ||
import sqlite3 from "sqlite3"; | ||
const db = new sqlite3.Database("./records/SERVER.db"); | ||
import Database from 'better-sqlite3'; | ||
const db = new Database('./records/SERVER.db'); | ||
db.pragma('journal_mode = WAL'); | ||
|
||
import fetchUser from "../User/fetchUser"; | ||
import roleCheck from "../../util/roleCheck"; | ||
|
||
import type { IChannelbeforeParsing, IChannel } from "../../type/Channel"; | ||
|
||
export default async function fetchChannel(channelId:string, userId:string) | ||
:Promise<IChannel|null> { | ||
return new Promise<IChannel|null>(async (resolve) => { | ||
db.all("SELECT * FROM CHANNELS WHERE channelId = ?", [channelId], async (err:Error, datChannels:IChannelbeforeParsing[]) => { | ||
if (err) { | ||
console.log("fetchChannel :: db : エラー->", err); | ||
resolve(null); | ||
return; | ||
} else { | ||
//console.log("fetchChannel :: db : 取得結果->", datChannels); | ||
//チャンネルデータが無ければnull、あれば整形して返す | ||
if (datChannels.length === 0) { | ||
resolve(null); | ||
return; | ||
} else { | ||
//プラベなら権限と参加を調べて無いならnull | ||
if (datChannels[0].isPrivate) { | ||
//ユーザー情報を取得 | ||
const userInfo = await fetchUser(userId, null); | ||
//ユーザー情報がそもそもないならnull | ||
if (userInfo === null) { | ||
resolve(null); | ||
return; | ||
} | ||
|
||
//このユーザーがサーバー管理権限がありプラベを見られるか調べる | ||
if ( | ||
!userInfo.channelJoined.includes(channelId) | ||
&& | ||
!(await roleCheck(userId, "ServerManage")) | ||
) { | ||
//返す | ||
resolve(null); | ||
return; | ||
} | ||
} | ||
|
||
//チャンネル情報を整形する | ||
const infoGotIt:IChannel = { | ||
...datChannels[0], | ||
isPrivate: datChannels[0].isPrivate===1?true:false, | ||
speakableRole: //空文字列なら空配列にする | ||
datChannels[0].speakableRole!==""?datChannels[0].speakableRole.split(","):[] | ||
}; | ||
//返す | ||
resolve(infoGotIt); | ||
return; | ||
} | ||
} | ||
}); | ||
}); | ||
/** | ||
* チャンネル情報を取得する | ||
* @param _channelId | ||
* @param _userId | ||
* @returns | ||
*/ | ||
export default function fetchChannel(_channelId:string, _userId:string) | ||
:IChannel|null { | ||
try { | ||
|
||
const channelInfo = db.prepare( | ||
"SELECT * FROM CHANNELS WHERE channelId=?" | ||
).get(_channelId) as IChannelbeforeParsing|undefined; | ||
|
||
if (channelInfo === undefined) return null; | ||
|
||
//プライベートならユーザーの権限、あるいは作成者と同じか調べる | ||
if (channelInfo.isPrivate) { | ||
//ユーザー情報を取得 | ||
const userInfo = fetchUser(_userId, null); | ||
if (userInfo === null) return null; | ||
|
||
//チャンネル作成者と同じか、あるいはサーバー管理権限があるか調べる | ||
if ( | ||
!userInfo.channelJoined.includes(_channelId) | ||
&& | ||
!(roleCheck(_userId, "ServerManage")) | ||
) return null; | ||
} | ||
|
||
//チャンネル情報をパースする | ||
const channelInfoParsed:IChannel = { | ||
...channelInfo, | ||
isPrivate: channelInfo.isPrivate === 1, | ||
speakableRole: //👇空文字列なら空配列にする | ||
channelInfo.speakableRole!==""?channelInfo.speakableRole.split(","):[] | ||
} | ||
|
||
return channelInfoParsed; | ||
|
||
} catch(e) { | ||
|
||
console.log("fetchChannel :: エラー->", e); | ||
return null; | ||
|
||
} | ||
} |
Oops, something went wrong.