forked from PluralFlux/PluralFlux
Compare commits
2 Commits
4a8bb3aea6
...
HEAD
| Author | SHA1 | Date | |
|---|---|---|---|
| c2a88804ad | |||
| 2b31cc2ae9 |
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -22,4 +22,5 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- 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()
|
||||||
|
|||||||
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"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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