История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Скрипт показывающий всю вашу личную статистику по реакциям. К сожалению не совсем точный по техническим причинам, если вы отключали уведомления о полученных реакциях то те реакции потеряны, как Максим сказал не все реакции что вы поставили доступны. И ещё момент разбор хтмля идёт построчный так что если в сообщениях есть символы реакций то они могут тоже сожраться, но это редкость можно пренебречь, ну появится пяток левых реакций у вас в статистике ну фиг с ними. Хотел добавить кто вам понаставил клоунов топ 10 и прочих, кому вы понаставили больше всего чего-то определённого, но «таблица» будет большая и лень…
- Зависимости
apt install lua curl
- Запуск
lua ./reactor.lua
------------------------------------------------------------
-- : Конфигурация :
-- : нужно указать логин и пароль
-- : пароль можно получить из файла (закомментированно)
------------------------------------------------------------
local config =
{
username = ""; -- твой логин
userpass = ""; -- твой пароль
--userpass = io.open('lorpass.txt','r'):read('*l'); -- или пароль из файла
----------------------------
ucookies = "lorcookies.txt"; -- не трогать
usercsrf = ""; -- не трогать
uislogin = false; -- не трогать
----------------------------
reactions = { -- не накручивать
get = {
["👍"] = 0;
["👎"] = 0;
["🔥"] = 0;
["😊"] = 0;
["🤔"] = 0;
["😱"] = 0;
["🤡"] = 0;
["🤦"] = 0;
["🪗"] = 0;
["☕☕"] = 0;
};
set = {
["👍"] = 0;
["👎"] = 0;
["🔥"] = 0;
["😊"] = 0;
["🤔"] = 0;
["😱"] = 0;
["🤡"] = 0;
["🤦"] = 0;
["🪗"] = 0;
["☕☕"] = 0;
};
};
reactions_total = { get = 0, set = 0 };
}
--------------------------------------------------------------
-- : Получение временного токена (для возможности регистрации)
--------------------------------------------------------------
local function get_csrf()
local header = io.popen('curl -s "https://www.linux.org.ru/" --head')
config.usercsrf = header:read('*a'):match('CSRF_TOKEN=(........................);');
end
--------------------------------------------------------------------------------
-- : Регистрация для получения cookies (для возможности запроса к личным данным)
--------------------------------------------------------------------------------
local function lor_login()
get_csrf();
local register = io.popen('curl -s "https://www.linux.org.ru/ajax_login_process"'..
' --header "Cookie:CSRF_TOKEN='..config.usercsrf..';" -XPOST '..
' -d "nick=' ..config.username..'"'..
' -d "passwd='..config.userpass..'"'..
' -d "csrf=' ..config.usercsrf..'"'..
' -c ' ..config.ucookies);
if register:read('*a'):find('true',1,true) then
config.uislogin = true;
register:close();
else
print("Неправильный логин или пароль (или механизм регистарции изменён или 42)");
os.exit();
end
end
local function lor_reations_info(reactions_type)
if config.uislogin == false then
lor_login();
end
local offset = 0;
while true do
local reactions = '';
if reactions_type == 'set' then
reactions = io.popen('curl -s "https://www.linux.org.ru/people/'..config.username..'/reactions'..
'?offset='..offset..'" -b '..config.ucookies);
end
----------------------------------------------------------------------------------------------------
if reactions_type == 'get' then
reactions = io.popen('curl -s "https://www.linux.org.ru/notifications?filter=reaction'..
'&offset='..offset..'" -b '..config.ucookies);
end
io.stdout:setvbuf('no')
local text = reactions:read('*a');
for react in text:gmatch("[^\n]+") do
for n,v in pairs(config.reactions[reactions_type]) do
if react:find(n,1,true) then
config.reactions[reactions_type][n]=config.reactions[reactions_type][n] + 1;
offset=offset+1;
if n == "☕☕" then
n = "☕" -- костыль
end
io.write("\rСканирование кловунов и не только "..n..' №'..offset..'\r');
break;
end
end
end
reactions:close();
if not text:find('вперед',1,true) then
config.reactions_total[reactions_type] = offset;
break;
end
end
end
lor_reations_info('set');
print("----------------------------------------------")
print(' Пользователь '..config.username..' понаставил')
print("----------------------------------------------")
for name,val in pairs(config.reactions.set) do
print(name..' -> '..val);
end
print(">>> Всего оставлено "..config.reactions_total.set.." реакций");
lor_reations_info('get');
print("-----------------------------------------------")
print(' Пользователь '..config.username..' понаполучал')
print("-----------------------------------------------")
for name,val in pairs(config.reactions.get) do
print(name..' -> '..val);
end
print(">>> Всего получено "..config.reactions_total.get.." реакций");
print("-----------------------------------------------")
Результат
dron@gnu:~$ lua lor-reactor.lua
----------------------------------------------
Пользователь LINUX-ORG-RU понаставил
----------------------------------------------
🪗 -> 4
👍 -> 324
🔥 -> 86
👎 -> 28
😱 -> 262
🤦 -> 20
☕☕ -> 88
🤡 -> 131
😊 -> 577
🤔 -> 48
>>> Всего оставлено 1568 реакций
-----------------------------------------------
Пользователь LINUX-ORG-RU понаполучал
-----------------------------------------------
🪗 -> 3
👍 -> 156
🔥 -> 88
👎 -> 6
😱 -> 20
🤦 -> 9
☕☕ -> 251
🤡 -> 94
😊 -> 147
🤔 -> 11
>>> Всего получено 785 реакций
-----------------------------------------------
dron@gnu:~$
Всё я спать. Досвиданья.
Исправление LINUX-ORG-RU, :
Скрипт показывающий личную статистику по реакциям. К сожалению не совсем точный по техническим причинам, если вы отключали уведомления о полученных реакциях то те реакции потеряны, как Максим сказал не все реакции что вы поставили доступны. И ещё момент разбор хтмля идёт построчный так что если в сообщениях есть символы реакций то они могут тоже сожраться, но это редкость можно пренебречь, ну появится пяток левых реакций у вас в статистике ну фиг с ними. Хотел добавить кто вам понаставил клоунов топ 10 и прочих, кому вы понаставили больше всего чего-то определённого, но «таблица» будет большая и лень…
- Зависимости
apt install lua curl
- Запуск
lua ./reactor.lua
------------------------------------------------------------
-- : Конфигурация :
-- : нужно указать логин и пароль
-- : пароль можно получить из файла (закомментированно)
------------------------------------------------------------
local config =
{
username = ""; -- твой логин
userpass = ""; -- твой пароль
--userpass = io.open('lorpass.txt','r'):read('*l'); -- или пароль из файла
----------------------------
ucookies = "lorcookies.txt"; -- не трогать
usercsrf = ""; -- не трогать
uislogin = false; -- не трогать
----------------------------
reactions = { -- не накручивать
get = {
["👍"] = 0;
["👎"] = 0;
["🔥"] = 0;
["😊"] = 0;
["🤔"] = 0;
["😱"] = 0;
["🤡"] = 0;
["🤦"] = 0;
["🪗"] = 0;
["☕☕"] = 0;
};
set = {
["👍"] = 0;
["👎"] = 0;
["🔥"] = 0;
["😊"] = 0;
["🤔"] = 0;
["😱"] = 0;
["🤡"] = 0;
["🤦"] = 0;
["🪗"] = 0;
["☕☕"] = 0;
};
};
reactions_total = { get = 0, set = 0 };
}
--------------------------------------------------------------
-- : Получение временного токена (для возможности регистрации)
--------------------------------------------------------------
local function get_csrf()
local header = io.popen('curl -s "https://www.linux.org.ru/" --head')
config.usercsrf = header:read('*a'):match('CSRF_TOKEN=(........................);');
end
--------------------------------------------------------------------------------
-- : Регистрация для получения cookies (для возможности запроса к личным данным)
--------------------------------------------------------------------------------
local function lor_login()
get_csrf();
local register = io.popen('curl -s "https://www.linux.org.ru/ajax_login_process"'..
' --header "Cookie:CSRF_TOKEN='..config.usercsrf..';" -XPOST '..
' -d "nick=' ..config.username..'"'..
' -d "passwd='..config.userpass..'"'..
' -d "csrf=' ..config.usercsrf..'"'..
' -c ' ..config.ucookies);
if register:read('*a'):find('true',1,true) then
config.uislogin = true;
register:close();
else
print("Неправильный логин или пароль (или механизм регистарции изменён или 42)");
os.exit();
end
end
local function lor_reations_info(reactions_type)
if config.uislogin == false then
lor_login();
end
local offset = 0;
while true do
local reactions = '';
if reactions_type == 'set' then
reactions = io.popen('curl -s "https://www.linux.org.ru/people/'..config.username..'/reactions'..
'?offset='..offset..'" -b '..config.ucookies);
end
----------------------------------------------------------------------------------------------------
if reactions_type == 'get' then
reactions = io.popen('curl -s "https://www.linux.org.ru/notifications?filter=reaction'..
'&offset='..offset..'" -b '..config.ucookies);
end
io.stdout:setvbuf('no')
local text = reactions:read('*a');
for react in text:gmatch("[^\n]+") do
for n,v in pairs(config.reactions[reactions_type]) do
if react:find(n,1,true) then
config.reactions[reactions_type][n]=config.reactions[reactions_type][n] + 1;
offset=offset+1;
if n == "☕☕" then
n = "☕" -- костыль
end
io.write("\rСканирование кловунов и не только "..n..' №'..offset..'\r');
break;
end
end
end
reactions:close();
if not text:find('вперед',1,true) then
config.reactions_total[reactions_type] = offset;
break;
end
end
end
lor_reations_info('set');
print("----------------------------------------------")
print(' Пользователь '..config.username..' понаставил')
print("----------------------------------------------")
for name,val in pairs(config.reactions.set) do
print(name..' -> '..val);
end
print(">>> Всего оставлено "..config.reactions_total.set.." реакций");
lor_reations_info('get');
print("-----------------------------------------------")
print(' Пользователь '..config.username..' понаполучал')
print("-----------------------------------------------")
for name,val in pairs(config.reactions.get) do
print(name..' -> '..val);
end
print(">>> Всего получено "..config.reactions_total.get.." реакций");
print("-----------------------------------------------")
Результат
dron@gnu:~$ lua lor-reactor.lua
----------------------------------------------
Пользователь LINUX-ORG-RU понаставил
----------------------------------------------
🪗 -> 4
👍 -> 324
🔥 -> 86
👎 -> 28
😱 -> 262
🤦 -> 20
☕☕ -> 88
🤡 -> 131
😊 -> 577
🤔 -> 48
>>> Всего оставлено 1568 реакций
-----------------------------------------------
Пользователь LINUX-ORG-RU понаполучал
-----------------------------------------------
🪗 -> 3
👍 -> 156
🔥 -> 88
👎 -> 6
😱 -> 20
🤦 -> 9
☕☕ -> 251
🤡 -> 94
😊 -> 147
🤔 -> 11
>>> Всего получено 785 реакций
-----------------------------------------------
dron@gnu:~$
Всё я спать. Досвиданья.
Исходная версия LINUX-ORG-RU, :
Скрипт показывающий личную статистику по реакциям. К сожалению не совсем точный по техническим причинам, если вы отключали уведомления о полученных реакциях то те реакции потеряны, как Максим сказал не все реакции что вы поставили доступны. И ещё момент разбор хтмля идёт построчный так что если в сообщениях есть символы реакций то они могут тоже сожраться, но это редкость можно пренебречь, ну появится пяток левых реакций у вас в статистике ну фиг с ними. Хотел добавить кто вам понаставил клоунов топ 10 и прочих, кому вы понаставили больше всего чего-то определённого, но «таблица» будет большая и лень…
- Зависимости
apt install lua curl
- Запуск
lua ./reactor.lua
------------------------------------------------------------
-- : Конфигурация :
-- : нужно указать логин и пароль
-- : пароль можно получить из файла (закомментированно)
------------------------------------------------------------
local config =
{
username = ""; -- твой логин
userpass = ""; -- твой пароль
--userpass = io.open('lorpass.txt','r'):read('*l'); -- или пароль из файла
----------------------------
ucookies = "lorcookies.txt"; -- не трогать
usercsrf = ""; -- не трогать
uislogin = false; -- не трогать
----------------------------
reactions = { -- не накручивать
get = {
["👍"] = 0;
["👎"] = 0;
["🔥"] = 0;
["😊"] = 0;
["🤔"] = 0;
["😱"] = 0;
["🤡"] = 0;
["🤦"] = 0;
["🪗"] = 0;
["☕☕"] = 0;
};
set = {
["👍"] = 0;
["👎"] = 0;
["🔥"] = 0;
["😊"] = 0;
["🤔"] = 0;
["😱"] = 0;
["🤡"] = 0;
["🤦"] = 0;
["🪗"] = 0;
["☕☕"] = 0;
};
};
reactions_total = { get = 0, set = 0 };
}
--------------------------------------------------------------
-- : Получение временного токена (для возможности регистрации)
--------------------------------------------------------------
local function get_csrf()
local header = io.popen('curl -s "https://www.linux.org.ru/" --head')
config.usercsrf = header:read('*a'):match('CSRF_TOKEN=(........................);');
end
--------------------------------------------------------------------------------
-- : Регистрация для получения cookies (для возможности запроса к личным данным)
--------------------------------------------------------------------------------
local function lor_login()
get_csrf();
local register = io.popen('curl -s "https://www.linux.org.ru/ajax_login_process"'..
' --header "Cookie:CSRF_TOKEN='..config.usercsrf..';" -XPOST '..
' -d "nick=' ..config.username..'"'..
' -d "passwd='..config.userpass..'"'..
' -d "csrf=' ..config.usercsrf..'"'..
' -c ' ..config.ucookies);
if register:read('*a'):find('true',1,true) then
config.uislogin = true;
register:close();
else
print("Неправильный логин или пароль (или механизм регистарции изменён или 42)");
os.exit();
end
end
local function lor_reations_info(reactions_type)
if config.uislogin == false then
lor_login();
end
local offset = 0;
while true do
local reactions = '';
if reactions_type == 'set' then
reactions = io.popen('curl -s "https://www.linux.org.ru/people/'..config.username..'/reactions'..
'?offset='..offset..'" -b '..config.ucookies);
end
----------------------------------------------------------------------------------------------------
if reactions_type == 'get' then
reactions = io.popen('curl -s "https://www.linux.org.ru/notifications?filter=reaction'..
'&offset='..offset..'" -b '..config.ucookies);
end
io.stdout:setvbuf('no')
local text = reactions:read('*a');
for react in text:gmatch("[^\n]+") do
for n,v in pairs(config.reactions[reactions_type]) do
if react:find(n,1,true) then
config.reactions[reactions_type][n]=config.reactions[reactions_type][n] + 1;
offset=offset+1;
if n == "☕☕" then
n = "☕" -- костыль
end
io.write("\rСканирование кловунов и не только "..n..' №'..offset..'\r');
break;
end
end
end
reactions:close();
if not text:find('вперед',1,true) then
config.reactions_total[reactions_type] = offset;
break;
end
end
end
lor_reations_info('set');
print("----------------------------------------------")
print(' Пользователь '..config.username..' понаставил')
print("----------------------------------------------")
for name,val in pairs(config.reactions.set) do
print(name..' -> '..val);
end
print(">>> Всего оставлено "..config.reactions_total.set.." реакций");
lor_reations_info('get');
print("-----------------------------------------------")
print(' Пользователь '..config.username..' понаполучал')
print("-----------------------------------------------")
for name,val in pairs(config.reactions.get) do
print(name..' -> '..val);
end
print(">>> Всего получено "..config.reactions_total.get.." реакций");
print("-----------------------------------------------")
Результат
dron@gnu:~$ lua lor-reactor.lua
----------------------------------------------
Пользователь LINUX-ORG-RU понаставил
----------------------------------------------
🪗 -> 4
👍 -> 324
🔥 -> 86
👎 -> 28
😱 -> 262
🤦 -> 20
☕☕ -> 88
🤡 -> 131
😊 -> 577
🤔 -> 48
>>> Всего оставлено 1568 реакций
-----------------------------------------------
Пользователь LINUX-ORG-RU понаполучал
-----------------------------------------------
🪗 -> 3
👍 -> 156
🔥 -> 88
👎 -> 6
😱 -> 20
🤦 -> 9
☕☕ -> 251
🤡 -> 94
😊 -> 147
🤔 -> 11
>>> Всего получено 785 реакций
-----------------------------------------------
dron@gnu:~$
Всё я спать.