Skip to content

Qiitaに投稿されるスパムを検出するために使用するElectron製アプリ

License

Notifications You must be signed in to change notification settings

mafumafuultu/QiitaPolice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QiitaPolice

licence Version

Qiitaに投稿されるスパムを検出するために使用する。
最新投稿20件に対して、チェックを行う。

update

version.md参照

install

git clone https://github.com/mafumafuultu/QiitaPolice.git
cd QiitaPolice

build

ビルドコマンド流す前に、作成したフィルタ、Exportしたデータのバックアップをしておいてください。

npm run less
npm run build
cp ./resources/* ../build/QiitaPolice-win32-x64/resources -recurse -force

機能

new item

任意の件数(20~100)投稿を取得する。フィルタを適用し、その結果を表示する。 ページャにより更に過去の投稿を読み込み可能。

Export

フィルタにマッチしたデータを書き出す。 ./resource/reject/rejected-YYYYMMdd-HH.txt に追記される。

Test

テストデータに対してフィルタを適用し、その結果を表示する。 テストデータは編集可能。

1st post

読み込んだ投稿のうち、各ユーザの初回投稿のみ表示する。

AutoReload

一定時間ごとに投稿を読み込む

AutoExport

スパムが一定量たまったら./resource/reject/に検出した投稿をはき出す。

mark NG

投稿ごとに用意しているボタンで、フィルタにマッチしなかったが、問題がある投稿としてマークしExport対象とする。

ショートカットキー

キー 動作
enter 記事の読み込み
left ページャのカウントアップ
ctrl + left ページャのカウントを最小値(1)
right ページャのカウントダウン
ctrl + right ページャのカウントを最大値(100)

Filter

記述したフィルタは assets/modules/custom-filter.js のConstructorに渡されるArrayの要素になる。

単純な単語フィルタの例

{
	name : '単語フィルタ',
	filter : ['ngword', 'sexual'],
	prop : 'body'
}
{
	// フィルタ名称
	// マッチした投稿にどのフィルタにマッチしたのか表示するために使用
	name : '単語フィルタ',

	// マッチさせたい単語
	filter : ['ngword', 'sexual'],

	// 投稿データでフィルタ対象にしたいプロパティ
	prop : 'body',

	/* 以下オプション */
	// 記号類を除去してマッチするモード
	noNoise: false,

	_regexp() {
		this._reg = new RegExp(`\\b${this.filter.join('\\b|\\b')}\\b`, 'gi');
	},

	// @param obj QiitaAPI v2 投稿1件分のデータ
	// 結果は必ず this._result に入れる
	check : function(obj) {
		this._result = this._reg.test(obj[this.prop]);
	},

}

フィルタを作ったら[フィルタ名].jsとして保存しresources/filters/の適当な場所に置く。 filter.json に置いたファイルのパスを記載する。

{
	"resurces/filters/直下のdir名" : {
		"files" : [
			"[フィルタ名].js",
			"作ったフィルタ2.js"
		]
	}
}

About

Qiitaに投稿されるスパムを検出するために使用するElectron製アプリ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published