<commit_before>// ==UserScript==
// @name DobroReport
// @description Скрипт добавляет кнопку "Сообщить Модераторам"
// @namespace dobro
// @version 0.3
// @author lain-dono
// @license public domain
// @include https://dobrochan.ru/*
// @include https://dobrochan.org/*
// @include https://dobrochan.com/*
// @include http://dobrochan.ru/*
// @include http://dobrochan.org/*
// @include http://dobrochan.com/*
// ==/UserScript==

function main() {
	// Модераторам-тред
	var mod_thread = 47873;

	// Загрузка номера треда из localStorage
	if (localStorage.dobroReportModThread)
		mod_thread = localStorage.dobroReportModThread;

	// Раздел
	var board = window.location.pathname.split("/")[1];

	var postMessage = function(msg) {
		var m = {"thread_id": mod_thread, task:"post", message: msg};
		jQuery.post("/d/post/new.xhtml", m);
	};

	var getMessage = function() {
		// Отмеченные посты(крестики)
		var markedPosts = $(".delete.icon.checked input");
		var postBody = "";

		markedPosts.each(function() {
			postBody += ">>"+board+"/"+this.name+"\n";
		});

		if(!postBody) {
			alert("Нет постов же");
			return false;
		}

		var comment = prompt("Комментарий к нарушающим постам\n(пустой комментарий означает отмену отправки)");

		if(comment) {
			postBody += comment;
			return postBody;
		} else {
			return false;
		}
	}
	
	// Добавляем кнопку
	var button = $("<button>Сообщить Модераторам</button>");
	button.click(function() {
		var msg = getMessage();
		if(msg) {
			postMessage(msg);
		}
		return false;
	});
	$(".userdelete tbody tr td").append(button);

	// Если находимся в настройках
	if (location.pathname == '/settings') {
		var setModThreadButton = $("<button>Обновить номер модераторам-треда ("+ mod_thread +")</button>");
		setModThreadButton.click(function () {
			$.getJSON('/d/0.json', function (json) {
				threads = json.boards.d.threads;
				for (var i = 0; i < threads.length; i++) {
					if (threads[i].title == "Модераторам-тред") {
						localStorage.dobroReportModThread = threads[i].display_id;
						alert('Модераторам-тред успешно обновлён: ' + localStorage.dobroReportModThread);
						return;
					}
				}
				alert('Не удалось найти Модераторам-тред на нулевой');
			});
		});
		$('form:last').after(setModThreadButton);
	}
};

// Добавляем скрипт на страницу
var script = document.createElement("script");
script.textContent = "(" + (main.toString()) + ")();";
document.body.appendChild(script);
<commit_msg>Пофиксил поиск Модераторам-тред (в новом нет '-')<commit_after>// ==UserScript==
// @name DobroReport
// @description Скрипт добавляет кнопку "Сообщить Модераторам"
// @namespace dobro
// @version 0.4
// @author lain-dono
// @license public domain
// @include https://dobrochan.ru/*
// @include https://dobrochan.org/*
// @include https://dobrochan.com/*
// @include http://dobrochan.ru/*
// @include http://dobrochan.org/*
// @include http://dobrochan.com/*
// ==/UserScript==

function main() {
	// Модераторам-тред
	var mod_thread = 47873;

	// Загрузка номера треда из localStorage
	if (localStorage.dobroReportModThread)
		mod_thread = localStorage.dobroReportModThread;

	// Раздел
	var board = window.location.pathname.split("/")[1];

	var postMessage = function(msg) {
		var m = {"thread_id": mod_thread, task:"post", message: msg};
		jQuery.post("/d/post/new.xhtml", m);
	};

	var getMessage = function() {
		// Отмеченные посты(крестики)
		var markedPosts = $(".delete.icon.checked input");
		var postBody = "";

		markedPosts.each(function() {
			postBody += ">>"+board+"/"+this.name+"\n";
		});

		if(!postBody) {
			alert("Нет постов же");
			return false;
		}

		var comment = prompt("Комментарий к нарушающим постам\n(пустой комментарий означает отмену отправки)");

		if(comment) {
			postBody += comment;
			return postBody;
		} else {
			return false;
		}
	}
	
	// Добавляем кнопку
	var button = $("<button>Сообщить Модераторам</button>");
	button.click(function() {
		var msg = getMessage();
		if(msg) {
			postMessage(msg);
		}
		return false;
	});
	$(".userdelete tbody tr td").append(button);

	// Если находимся в настройках
	if (location.pathname == '/settings') {
		var setModThreadButton = $("<button>Обновить номер модераторам-треда ("+ mod_thread +")</button>");
		setModThreadButton.click(function () {
			$.getJSON('/d/0.json', function (json) {
				threads = json.boards.d.threads;
				for (var i = 0; i < threads.length; i++) {
					if (threads[i].title.search("Модераторам") != -1) {
						localStorage.dobroReportModThread = threads[i].display_id;
						alert('Модераторам-тред успешно обновлён: ' + localStorage.dobroReportModThread);
						return;
					}
				}
				alert('Не удалось найти Модераторам-тред на нулевой');
			});
		});
		$('form:last').after(setModThreadButton);
	}
};

// Добавляем скрипт на страницу
var script = document.createElement("script");
script.textContent = "(" + (main.toString()) + ")();";
document.body.appendChild(script);

{'fraction_non_alphanumeric': 0.17402755267423015, 'fraction_numerical': 0.0042544570502431114, 'mean_word_length': 3.728927203065134, 'pattern_counts': {'":': 2, '<': 13, '<?xml version=': 0, '>': 15, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3469702', 'n_tokens_mistral': 1986, 'n_tokens_neox': 1888, 'n_words': 352}