LINUX.ORG.RU

История изменений

Исправление 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:~$ 

Всё я спать.