Пользователь указывает дату, с которой ему нужно найти все свои посты, и скрипт находит их, считает количество символов, считает полученную форумную валюту согласно заранее заданным настройкам, а потом выдает аккуратный список, который можно сразу копировать в банк.
Создайте на форуме новую страницу и установите туда скрипт ниже. Отредактируйте currency_dict, subforums и UserFld3 (встречается в коде в двух местах).
currency_dict - это ваши настройки стоимости постов.
- "one", "two" и "five" - это три варианта склонения названия вашей валюты. Одна шестеренка за пост, две шестеренки за пост, пять шестеренок за пост.
- "pricelist" - это ваш прайс-лист за посты. Считыются символы. В примере ниже за пост до 100 символов полагается одна шестеренка, до 200 - две шестеренки, от 301 и выше - четыре шестеренки.
subforums - это номера подфорумов, в которых могут быть игровые посты. Не забудьте добавить архивные подфорумы.
UserFld3 - это поле в профиле, в котором у вас считается валюта. В поле не обязательно должно быть только число, там может быть написано что-то вроде "100 шестеренок". Скрипт сам найдет число в тексте.
<div>
<form>
<div><label> Имя пользователя:
<input type="text" id="user_name_fld" name="user_name" />
</label></div>
<div><label> Дата последнего захода в банк (в формате гггг-мм-дд чч:мм:сс):
<input type="text" id="last_date_fld" name="last_date" />
</label></div>
<div><label> Сколько сейчас билетов в профиле:
<input type="text" id="before_fld" name="before" />
</label></div>
<a onclick="calculate()">Посчитать</a>
</form>
</div>
<div id="code"></div>
<script src="https://frpgtools.com/static/scripts/calculate.js"></script>
<script>
const currency_dict = {
"one": "шестеренка",
"two": "шестеренки",
"five": "шестеренок",
"pricelist": [{
"min": 0,
"max": 100,
"price": 1
},
{
"min": 101,
"max": 200,
"price": 2
},
{
"min": 201,
"max": 300,
"price": 3
},
{
"min": 301,
"price": 4
}]
}
const subforums = [10, 11, 9, 19, 20]
document.getElementById('user_name_fld').value = UserLogin;
let tickets = 0
if (typeof UserFld3 !== 'undefined') {
let numberPattern = /\d+/g;
tickets = UserFld3.match(numberPattern)[0]
}
document.getElementById('before_fld').value = tickets
async function calculate() {
const user_name = document.getElementById('user_name_fld').value
const start_time_str = document.getElementById('last_date_fld').value
const before = document.getElementById('before_fld').value
const posts = await get_posts(subforums, user_name, start_time_str, currency_dict)
const result = '<div class="code-box"><strong class="legend">Код:</strong><div class="blockcode"><div class="scrollbox"><pre>'+format_message(posts, before)+'</pre></div></div></div>'
document.getElementById('code').innerHTML = result
}
</script>