forked from PluralFlux/PluralFlux
Compare commits
9 Commits
4a8bb3aea6
...
add-system
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee4dca2ae3 | ||
|
|
ff4dba3dfd | ||
|
|
96c2abc06a | ||
| c2a88804ad | |||
| 2b31cc2ae9 | |||
| b602e654ec | |||
| 732ad36bba | |||
| 8446559bfb | |||
| 14ef1581c1 |
@@ -6,6 +6,8 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches: ["main"]
|
branches: ["main"]
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: Auto-Sync from Mirror
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
repository: "Pluralflux/Pluralflux"
|
repository: "Pluralflux/Pluralflux"
|
||||||
branches: ['main', 'Develop', 'develop']
|
branches: [main,develop]
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ PluralFlux is a proxybot akin to PluralKit and Tupperbox, but for [Fluxer](https
|
|||||||
|
|
||||||
[Sponsor the project](https://github.com/sponsors/pieartsy)
|
[Sponsor the project](https://github.com/sponsors/pieartsy)
|
||||||
|
|
||||||
If it's not running at the moment, it's because my computer crashed or something. I'm looking to move running it to a somewhat more permanent solution.
|
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
All commands are prefixed by `pf;`. Currently only a few are implemented.
|
All commands are prefixed by `pf;`. Currently only a few are implemented.
|
||||||
|
|
||||||
|
|||||||
@@ -23,3 +23,4 @@ services:
|
|||||||
- pgadmindata:/var/lib/pgadmin
|
- pgadmindata:/var/lib/pgadmin
|
||||||
volumes:
|
volumes:
|
||||||
pgdata:
|
pgdata:
|
||||||
|
pgadmindata:
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import {Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn} from "typeorm"
|
import {Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, Unique} from "typeorm"
|
||||||
|
|
||||||
@Entity({name: "Member", synchronize: true})
|
@Entity({name: "Member", synchronize: true})
|
||||||
|
@Unique("UQ_Member_userid_name", ['userid', 'name'])
|
||||||
export class Member {
|
export class Member {
|
||||||
|
|
||||||
@PrimaryGeneratedColumn()
|
@PrimaryGeneratedColumn()
|
||||||
|
|||||||
47
database/entity/System.ts
Normal file
47
database/entity/System.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import {Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, Unique} from "typeorm"
|
||||||
|
|
||||||
|
@Entity({name: "System", synchronize: true})
|
||||||
|
@Unique("UQ_System_userid", ['userid'])
|
||||||
|
@Unique("UQ_System_shortid", ['shortid'])
|
||||||
|
export class System {
|
||||||
|
|
||||||
|
@PrimaryGeneratedColumn()
|
||||||
|
id: number
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
})
|
||||||
|
shortid: string
|
||||||
|
|
||||||
|
@Column()
|
||||||
|
userid: string
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
length: 100,
|
||||||
|
nullable: true
|
||||||
|
})
|
||||||
|
name: string
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
type: "varchar",
|
||||||
|
nullable: true,
|
||||||
|
length: 100
|
||||||
|
})
|
||||||
|
fronter: string
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
})
|
||||||
|
grouptag: string
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
})
|
||||||
|
autoproxy: string
|
||||||
|
|
||||||
|
@CreateDateColumn({ type: 'timestamptz' })
|
||||||
|
createdAt: Date
|
||||||
|
|
||||||
|
@UpdateDateColumn({ type: 'timestamptz' })
|
||||||
|
updatedAt: Date
|
||||||
|
}
|
||||||
17
database/migrations/1772825438973-delete-duplicates.ts
Normal file
17
database/migrations/1772825438973-delete-duplicates.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export class DeleteDuplicates1772825438973 implements MigrationInterface {
|
||||||
|
name= "DeleteDuplicates1772825438973"
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DELETE
|
||||||
|
FROM "Member" a USING "Member" b
|
||||||
|
WHERE a.id
|
||||||
|
> b.id
|
||||||
|
AND a.name = b.name
|
||||||
|
AND a.userid = b.userid;`)
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
14
database/migrations/1772830252670-update.ts
Normal file
14
database/migrations/1772830252670-update.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export class Update1772830252670 implements MigrationInterface {
|
||||||
|
name = 'Update1772830252670'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "Member" ADD CONSTRAINT "UQ_Member_userid_name" UNIQUE ("userid", "name")`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "Member" DROP CONSTRAINT "UQ_Member_userid_name"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
14
database/migrations/1773670748825-update.ts
Normal file
14
database/migrations/1773670748825-update.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export class Update1773670748825 implements MigrationInterface {
|
||||||
|
name = 'Update1773670748825'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`CREATE TABLE "System" ("id" SERIAL NOT NULL, "shortid" character varying, "userid" character varying NOT NULL, "name" character varying(100), "fronter" character varying(100), "grouptag" character varying, "autoproxy" character varying, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), CONSTRAINT "UQ_System_shortid" UNIQUE ("shortid"), CONSTRAINT "UQ_System_userid" UNIQUE ("userid"), CONSTRAINT "PK_b8e3f6855de5a4758fcb59e5567" PRIMARY KEY ("id"))`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP TABLE "System"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
13
database/migrations/1773749921832-update.ts
Normal file
13
database/migrations/1773749921832-update.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export class Update1773749921832 implements MigrationInterface {
|
||||||
|
name = 'Update1773749921832'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`INSERT INTO "System" ("userid") SELECT DISTINCT "userid" FROM "Member";`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DELETE from "System" USING "Member" WHERE "System".userid = "Member".userid;`);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"start": "ts-node src/bot.js",
|
"start": "ts-node src/bot.js",
|
||||||
"build-db": "tsc",
|
"new-migration": "typeorm-ts-node-commonjs migration:create database/migrations/update",
|
||||||
"generate-db": "typeorm-ts-node-commonjs migration:generate -d database/data-source.ts database/migrations/update",
|
"generate-db": "typeorm-ts-node-commonjs migration:generate -d database/data-source.ts database/migrations/update",
|
||||||
"run-migration": "typeorm-ts-node-commonjs migration:run -d database/data-source.ts"
|
"run-migration": "typeorm-ts-node-commonjs migration:run -d database/data-source.ts"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ memberHelper.updateMemberField = async function (authorId, memberName, columnNam
|
|||||||
/**
|
/**
|
||||||
* Gets the details for a member.
|
* Gets the details for a member.
|
||||||
*
|
*
|
||||||
* @param {{Members, string[]}} member - The member object
|
* @param {{Member, string[]}} member - The member object
|
||||||
* @returns {EmbedBuilder} The member's info.
|
* @returns {EmbedBuilder} The member's info.
|
||||||
*/
|
*/
|
||||||
memberHelper.getMemberInfo = function (member) {
|
memberHelper.getMemberInfo = function (member) {
|
||||||
|
|||||||
@@ -36,12 +36,7 @@ memberRepo.getMembersByAuthor = async function (authorId) {
|
|||||||
* @returns {Promise<number>} Number of results removed.
|
* @returns {Promise<number>} Number of results removed.
|
||||||
*/
|
*/
|
||||||
memberRepo.removeMember = async function (authorId, memberName) {
|
memberRepo.removeMember = async function (authorId, memberName) {
|
||||||
const deleted = await members.delete({
|
const deleted = await members.delete({ name: ILike(memberName), userid: authorId })
|
||||||
where: {
|
|
||||||
name: ILike(memberName),
|
|
||||||
userid: authorId
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return deleted.affected;
|
return deleted.affected;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +48,7 @@ memberRepo.removeMember = async function (authorId, memberName) {
|
|||||||
* @returns {Promise<Member>} A successful inserted object.
|
* @returns {Promise<Member>} A successful inserted object.
|
||||||
*/
|
*/
|
||||||
memberRepo.createMember = async function (createObj) {
|
memberRepo.createMember = async function (createObj) {
|
||||||
return members.insert({
|
return await members.save({
|
||||||
name: createObj.name, userid: createObj.userid, displayname: createObj.displayname, proxy: createObj.proxy, propic: createObj.propic
|
name: createObj.name, userid: createObj.userid, displayname: createObj.displayname, proxy: createObj.proxy, propic: createObj.propic
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -69,12 +64,10 @@ memberRepo.createMember = async function (createObj) {
|
|||||||
* @returns {Promise<number>} A successful update.
|
* @returns {Promise<number>} A successful update.
|
||||||
*/
|
*/
|
||||||
memberRepo.updateMemberField = async function (authorId, memberName, columnName, value) {
|
memberRepo.updateMemberField = async function (authorId, memberName, columnName, value) {
|
||||||
const updated = await members.update({[columnName]: value}, {
|
const updated = await members.update({
|
||||||
where: {
|
|
||||||
name: ILike(memberName),
|
name: ILike(memberName),
|
||||||
userid: authorId
|
userid: authorId
|
||||||
}
|
}, {[columnName]: value})
|
||||||
})
|
|
||||||
return updated.affected;
|
return updated.affected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user