Все Тут Online
Все Тут Online
Новые сообщения
Все сообщения за последних 24 часа
Все сообщения за последнюю неделю
Расширенный Поиск

   
Меню сайта:
Главная
Форум
Чат
- Online приложения:
- Игры
- Выбор стиля:
- FAQ
- Для начинающих

Вернуться   Все Тут Online > Технический раздел > Полезные программы > РАЗНОЕ
Ответ
 
Опции темы Опции просмотра
Старый 16.09.2026, 05:05   #1
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
Восклицание Неофициальная база раздач RuTracker.org v. 20260829 (29 августа 2026 год)

================================================== ==============================
📚 ПРОСТОЕ ОПИСАНИЕ: НЕОФИЦИАЛЬНАЯ БАЗА РАЗДАЧ RUTRACKER.ORG (XML-ДАМП)
Версия: Актуальная (обычно обновляется в последние выходные месяца)
================================================== ==============================

📌 ЧТО ЭТО ТАКОЕ?
Это полная офлайн-копия (дамп) каталога всех раздач RuTracker.
Представьте, что это гигантский текстовый файл, в котором записаны названия
всех торрентов, их 40-символьные хеш-суммы (InfoHash для magnet-ссылок),
списки файлов и описания.

📌 ЗАЧЕМ ЭТО НУЖНО ОБЫЧНОМУ ПОЛЬЗОВАТЕЛЮ?
1. Обход ограничений сайта: RuTracker показывает только ~10 страниц раздач (10 по 50) одного автора.



Эта база покажет ВСЕ его раздачи за все годы без ограничений.
2. Работа при блокировках: Если сайт недоступен, база и magnet-ссылки лежат у вас.
3. Локальный поиск: Поиск по вашему диску работает быстро (секунды на SSD,
но может занять 1–3 минуты на механическом HDD, так как идет полное
последовательное сканирование файла без предварительной индексации).

📌 ГДЕ СКАЧАТЬ?
Автор раздачи выкладывает актуальные версии в двух местах:
• Яндекс Диск: файл часто нарезается на части (для удобства и стабильности
загрузки, а также из-за исторических привычек автора).
• MEGA: цельный архив (в некоторых случаях при скачивании из РФ может
потребоваться VPN, это зависит от конкретного интернет-провайдера).
*Прямые ссылки находятся в оригинальной теме раздачи на форуме RuTracker.*

📌 ЧЕМ ОТКРЫТЬ И ИСКАТЬ (Программы)
⚠️ ВАЖНО: Не пытайтесь открыть огромный XML-файл в "Блокноте" — компьютер зависнет.
Используйте специализированные инструменты:

🥇 РЕКОМЕНДУЕМЫЕ (с графическим интерфейсом, проще всего):
• InfoTor 2 (от y3401) – Современная, удобная, быстрая. https://github.com/y3401/InfoTor и https://github.com/y3401/infotor_2
• RuTracker Архив (от error0x001) – Отдельное приложение с понятным поиском. https://github.com/error0x001/local-rutracker
• qRutrGui (от LostGuard) – Классический просмотрщик базы. https://github.com/LostGuard/qRutrViewer
*Примечание: Эти программы при первом запуске "скормливают" XML-файл своему
конвертеру, чтобы создать быстрый внутренний индекс (это может занять время).*


🥈 САМЫЙ ПРОСТОЙ ПУТЬ (готовые форматы):
• Пользователь форума y3401 регулярно выкладывает уже преобразованные базы
(например, в формат SQLite), которые не требуют долгой первичной конвертации.
Ищите "y3401 rutracker database" в поиске по форуму.

🥉 ДЛЯ ПРОДВИНУТЫХ (Командная строка / Скрипты):
• Bash-скрипт с gawk – ищет напрямую по сырому XML без установки программ
и конвертации (идеально для Linux или Windows через WSL).
• Конвертеры XML в SQLite (от Saiv46 на Node.js или 1dNDN на C#) – для создания
собственной быстрой базы данных.

📌 КАК ЭТО РАБОТАЕТ (Реальная структура данных)
Внутри файла каждая раздача описана понятными тегами. Самое важное для нас:
<torrent id="1234567" registred_at="..." unixts="..." size="...">
<title>Название фильма или игры</title>
<torrent hash="40-СИМВОЛЬНЫЙ_HEX_ХЕШ" tracker_id="..."/>
<forum id="...">Название раздела</forum>
<!-- опционально: -->
<!-- <del/> (означает, что раздача удалена с сайта) -->
<!-- <old hash="..." ...>...</old> (информация о предыдущих версиях) -->
</torrent>

Именно 40-символьная строка из атрибута hash="..." подставляется в шаблон
magnet:?xt=urn:btih:ХЕШ для скачивания через торрент-клиент.

================================================== ==============================
💡 ИТОГОВЫЙ СОВЕТ:
Если вы не хотите разбираться с конвертацией гигантских файлов, начните с поиска
готовой конвертированной базы (например, от пользователя "y3401") на форуме,
либо используйте простой bash-скрипт с gawk (если вы пользуетесь Linux или WSL).
================================================== ==============================

📌 ИНСТРУКЦИЯ ДЛЯ WINDOWS (через WSL):
1. Убедитесь, что WSL включен (в PowerShell от админа: wsl --install, перезагрузка).
2. Откройте терминал Ubuntu (или другой дистрибутив) из меню Пуск.
3. Перейдите в папку Windows, где лежат скрипт и база (диски Windows смонтированы в /mnt/):
cd /mnt/c/Users/ВашеИмя/Desktop/
4. Создайте файл search.bash и вставьте в него код скрипта (см. ниже).
5. Укажите реальный путь в переменной path_to_rutracker_xml, например:
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Desktop/rutracker.xml"
6. Дайте права на исполнение: chmod +x search.bash
7. Запускайте поиск: ./search.bash "слово1 слово2"

Для простого поиска по ключевым словам, так чтобы возвращало и название раздачи и её хеш который можно засунуть в торрент-клиент, за глаза хватит простого скрипта:

Код:
#!/bin/bash

# 1. Проверка наличия аргумента
if [ -z "$1" ]; then
    echo "❌ Ошибка: Не указан поисковый запрос."
    echo "💡 Использование: $0 \"ключевые слова для поиска\""
    echo "   Пример: $0 \"matrix 1999\""
    exit 1
fi

search_query="$1"

# 2. ПУТЬ К ФАЙЛУ (Явные примеры для разных ОС)
# Для Windows (WSL): /mnt/c/Users/ВашеИмя/Downloads/rutracker.xml
# Для Linux: /home/ВашеИмя/Downloads/rutracker.xml
# Для macOS: /Users/ВашеИмя/Downloads/rutracker.xml
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Downloads/rutracker.xml"

if [ ! -f "$path_to_rutracker_xml" ]; then
    echo "❌ Ошибка: Файл '$path_to_rutracker_xml' не найден."
    echo "   Откройте скрипт в текстовом редакторе и укажите реальный путь к XML."
    exit 1
fi

echo "🔍 Ищем в базе: \"$search_query\" ..."
echo "================================================================"

# 3. Поиск с помощью GNU Awk (gawk)
# RS="</torrent>" надежно выделяет весь блок раздачи целиком, 
# избегая проблем с вложенным тегом <torrent hash="..."/>
gawk -v IGNORECASE=1 -v RS="</torrent>" -v query="$search_query" '
BEGIN {
    # Разбиваем поисковый запрос на отдельные слова для логики "И" (AND)
    n = split(query, words, " ")
}

# Пропускаем пустые блоки или XML-заголовок до первого <torrent>
$0 !~ /<torrent/ { next }

{
    # Проверяем, что ВСЕ слова из запроса присутствуют в текущем блоке раздачи
    found = 1
    for (i = 1; i <= n; i++) {
        if ($0 !~ words[i]) {
            found = 0
            break
        }
    }

    # Если все слова найдены, извлекаем данные
    if (found) {
        # Извлекаем Title: ищем <title>текст</title>
        title = ""
        if (match($0, /<title>[^<]+<\/title>/)) {
            # RSTART+7 пропускает "<title>", RLENGTH-15 убирает "<title>" и "</title>" (7+8=15)
            title = substr($0, RSTART + 7, RLENGTH - 15)
        }

        # Извлекаем Hash: используем capture group gawk для точного извлечения из атрибута
        hash = ""
        if (match($0, /hash="([A-Fa-f0-9]{40})"/, arr)) {
            hash = arr[1]
        }

        # Выводим красивый результат, только если нашли и название, и хеш
        if (title != "" && hash != "") {
            print "📁 Название: " title
            print "🔑 Хеш:     " hash
            print "🧲 Magnet:   magnet:?xt=urn:btih:" hash
            print "----------------------------------------------------------------"
        }
    }
}' "$path_to_rutracker_xml"
Скорость: awk с разделителем записей RS="</torrent>" не загружает весь файл в оперативную память как одну строку, а читает его блоками (по одной раздаче). Даже на файле размером 10–20 ГБ поиск обычно отрабатывает за несколько секунд на SSD (на HDD может занять 1–3 минуты).

Отсутствие зависимостей: Нужен только базовый bash и gawk (GNU Awk), которые есть в любом Linux и WSL "из коробки". Никаких npm install, pip install или docker-compose up.
Готовый результат: Скрипт сразу выдает строку magnet:?xt=urn:btih:ХЕШ. Её можно просто выделить мышкой, скопировать и вставить в qBittorrent, uTorrent или Transmission, и закачка начнется мгновенно, даже если сайт RuTracker недоступен.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


Скрытый текст (вы должны зарегистрироваться или войти под своим логином):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
cloud (16.09.2026), Крепыш (Вчера)
Старый 16.09.2026, 06:36   #2
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

Код:
#!/bin/bash

# 1. Проверка наличия аргумента
if [ -z "$1" ]; then
    echo "❌ Ошибка: Не указан поисковый запрос."
    echo "💡 Использование: $0 \"ключевые слова для поиска\""
    echo "   Пример: $0 \"matrix 1999\""
    exit 1
fi

search_query="$1"

# 2. ПУТЬ К ФАЙЛУ (Явные примеры для разных ОС)
# Для Windows (WSL): /mnt/c/Users/ВашеИмя/Downloads/rutracker.xml
# Для Linux: /home/ВашеИмя/Downloads/rutracker.xml
# Для macOS: /Users/ВашеИмя/Downloads/rutracker.xml
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Downloads/rutracker.xml"

if [ ! -f "$path_to_rutracker_xml" ]; then
    echo "❌ Ошибка: Файл '$path_to_rutracker_xml' не найден."
    echo "   Откройте скрипт в текстовом редакторе и укажите реальный путь к XML."
    exit 1
fi

echo "🔍 Ищем в базе: \"$search_query\" ..."
echo "================================================================"

# 3. Поиск с помощью GNU Awk (gawk)
# RS="</torrent>" надежно выделяет весь блок раздачи целиком, 
# избегая проблем с вложенным тегом <torrent hash="..."/>
gawk -v IGNORECASE=1 -v RS="</torrent>" -v query="$search_query" '
BEGIN {
    # Разбиваем поисковый запрос на отдельные слова для логики "И" (AND)
    n = split(query, words, " ")
}

# Пропускаем пустые блоки или XML-заголовок до первого <torrent>
$0 !~ /<torrent/ { next }

{
    # Проверяем, что ВСЕ слова из запроса присутствуют в текущем блоке раздачи
    found = 1
    for (i = 1; i <= n; i++) {
        if ($0 !~ words[i]) {
            found = 0
            break
        }
    }

    # Если все слова найдены, извлекаем данные
    if (found) {
        # Извлекаем Title: ищем <title>текст</title>
        title = ""
        if (match($0, /<title>[^<]+<\/title>/)) {
            # RSTART+7 пропускает "<title>", RLENGTH-15 убирает "<title>" и "</title>" (7+8=15)
            title = substr($0, RSTART + 7, RLENGTH - 15)
        }

        # Извлекаем Hash: используем capture group gawk для точного извлечения из атрибута
        hash = ""
        if (match($0, /hash="([A-Fa-f0-9]{40})"/, arr)) {
            hash = arr[1]
        }

        # Выводим красивый результат, только если нашли и название, и хеш
        if (title != "" && hash != "") {
            print "📁 Название: " title
            print "🔑 Хеш:     " hash
            print "🧲 Magnet:   magnet:?xt=urn:btih:" hash
            print "----------------------------------------------------------------"
        }
    }
}' "$path_to_rutracker_xml"
Если у тебя WSL - этот скрипт можно запускать.
Если у тебя обычная Windows без WSL он не заработает

Вот нормальный рабочий скрипт специально для WSL (и Linux).Он правильно извлекает:

Название раздачи
Хеш
Готовую magnet-ссылку

Код:
#!/bin/bash

# Проверка аргумента
if [ -z "$1" ]; then
    echo "❌ Ошибка: Не указан поисковый запрос"
    echo "💡 Использование: $0 \"ключевые слова\""
    echo "   Пример: $0 \"matrix 1999\""
    exit 1
fi

search_query="$1"

# ====================== НАСТРОЙКА ======================
# Укажи сюда путь к своему XML-файлу (пример для WSL)
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Downloads/rutracker.xml"
# =======================================================

if [ ! -f "$path_to_rutracker_xml" ]; then
    echo "❌ Файл не найден: $path_to_rutracker_xml"
    echo "Открой скрипт и укажи правильный путь."
    exit 1
fi

echo "🔍 Ищем: \"$search_query\""
echo "================================================================"

gawk -v IGNORECASE=1 -v RS="</torrent>" -v query="$search_query" '
BEGIN {
    n = split(query, words, " ")
}

$0 !~ /<torrent/ { next }

{
    found = 1
    for (i = 1; i <= n; i++) {
        if ($0 !~ words[i]) {
            found = 0
            break
        }
    }

    if (found) {
        title = ""
        if (match($0, /<title>[^<]+<\/title>/)) {
            title = substr($0, RSTART + 7, RLENGTH - 15)
        }

        hash = ""
        if (match($0, /hash="([A-Fa-f0-9]{40})"/, arr)) {
            hash = arr[1]
        }

        if (title != "" && hash != "") {
            print "📁 Название: " title
            print "🔑 Хеш:     " hash
            print "🧲 Magnet:   magnet:?xt=urn:btih:" hash
            print "----------------------------------------------------------------"
        }
    }
}' "$path_to_rutracker_xml"
Как пользоваться в WSL:

1 Создай файл:

bash

nano search.bash

2 Вставь код выше.
3 Исправь путь к XML-файлу.
4 Сохрани (Ctrl+O → Enter → Ctrl+X).
5 Дай права:

bash

chmod +x search.bash

6 Запускай:

bash

./search.bash "matrix 1999"
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый 16.09.2026, 06:43   #3
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

Вот готовый скрипт специально для обычной Windows + PowerShell (без WSL).

Код:
# Search-RuTracker.ps1
# Поиск по XML-дампу RuTracker в PowerShell

param (
    [Parameter(Mandatory = $true, HelpMessage = "Ключевые слова для поиска")]
    [string]$Query
)

# ====================== НАСТРОЙКА ======================
# Укажи полный путь к своему XML-файлу
$XmlPath = "C:\Users\ВашеИмя\Downloads\rutracker.xml"
# =======================================================

if (-not (Test-Path $XmlPath)) {
    Write-Host "❌ Файл не найден: $XmlPath" -ForegroundColor Red
    Write-Host "Открой скрипт и укажи правильный путь к XML." -ForegroundColor Yellow
    exit 1
}

Write-Host "🔍 Ищем: `"$Query`"" -ForegroundColor Cyan
Write-Host ("=" * 70)

$words = $Query -split '\s+' | Where-Object { $_ -ne "" }
$reader = [System.IO.StreamReader]::new($XmlPath, [System.Text.Encoding]::UTF8)

$buffer = ""
$foundCount = 0

try {
    while ($null -ne ($line = $reader.ReadLine())) {
        $buffer += $line + "`n"

        # Когда встретили конец раздачи
        if ($line -match '</torrent>') {
            
            # Проверяем, есть ли все слова из запроса
            $allFound = $true
            foreach ($word in $words) {
                if ($buffer -notmatch [regex]::Escape($word)) {
                    $allFound = $false
                    break
                }
            }

            if ($allFound) {
                # Извлекаем название
                $title = $null
                if ($buffer -match '<title>([^<]+)</title>') {
                    $title = $Matches[1].Trim()
                }

                # Извлекаем хеш
                $hash = $null
                if ($buffer -match 'hash="([A-Fa-f0-9]{40})"') {
                    $hash = $Matches[1]
                }

                if ($title -and $hash) {
                    $foundCount++
                    Write-Host "📁 Название: $title" -ForegroundColor Green
                    Write-Host "🔑 Хеш:     $hash"
                    Write-Host "🧲 Magnet:   magnet:?xt=urn:btih:$hash" -ForegroundColor Yellow
                    Write-Host ("-" * 70)
                }
            }

            # Очищаем буфер после обработки блока
            $buffer = ""
        }
    }
}
finally {
    $reader.Close()
}

if ($foundCount -eq 0) {
    Write-Host "`nНичего не найдено." -ForegroundColor DarkGray
} else {
    Write-Host "`nНайдено раздач: $foundCount" -ForegroundColor Cyan
}
Как пользоваться:

1 Открой Блокнот (или VS Code / Notepad++).
2 Вставь код выше.
3 Измени путь в строке:

powershell

$XmlPath = "C:\Users\ВашеИмя\Downloads\rutracker.xml"

4 Сохрани файл как Search-RuTracker.ps1 (важно именно с расширением .ps1).

5 Открой PowerShell и перейди в папку со скриптом:

powershell

cd C:\Users\ВашеИмя\Desktop

6 Запусти (первый раз может попросить разрешение) : powershell

.\Search-RuTracker.ps1 "matrix 1999"

Если PowerShell ругается на политику выполнения:Выполни один раз (от имени администратора не обязательно):

powershell

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый 16.09.2026, 08:00   #4
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

У многих же недоступно или временно недоступно,... а дальше известно и вполне понятно, что будет.
Поэтому это актуальное и настольное для всех.

Я её не копирую и не телескопирую на форум в виде раздач из этических соображений... и не более. Когда полностью заглохнет, раздавать будет просто некому, будь база хоть на Github хоть тут на VTO или же просто пылится на меге или на я-ди (без разницы)... и постепенно уйдет в небытие как артефакт 00-10-20-хх годов.
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый Вчера, 08:28   #5
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

Через 5–10 лет после смерти основного трекера такие дампы превратятся в настоящий огромный цифровой артефакт эпохи 2000–2020-х. Даже когда сами дампы станут редкостью и почти перестанут раздаваться, из тех копий, которые останутся у людей на дисках, всё равно можно будет выковыривать ценное
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый Вчера, 08:34   #6
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

Пока файл физически существует хоть у кого-то - его можно парсить скриптами (тем же awk, Python, InfoTor и т.д.) и доставать нужное. Особенно это актуально для редкого, старого или потерянного контента - оцифровок с аналоговых носителей.
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый Вчера, 08:40   #7
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

1. Самый простой - InfoTor. Скачай InfoTor 2 (от y3401)
Запусти программу.
Укажи путь к XML-файлу (или к уже сконвертированной базе SQLite).
Программа сама сконвертирует дамп в быстрый формат и даст удобный поиск с графическим интерфейсом.

Это самый лёгкий вариант - ничего кодировать не нужно.

2. Bash + gawk (для Linux / WSL)

Скрипт, который мы уже делали выше (ищет по словам и выдаёт название + хеш + magnet)

3. Python (самый гибкий вариант)

Код:
python

#!/usr/bin/env python3
"""
Надёжный парсер XML-дампа RuTracker
Итеративный разбор, не грузит весь файл в память
"""

import xml.etree.ElementTree as ET
from pathlib import Path
import sys

def search_rutracker(xml_path: str, query: str):
    words = [w.lower() for w in query.split() if w]
    if not words:
        print("❌ Пустой запрос")
        return

    # Итеративный парсинг
    context = ET.iterparse(xml_path, events=("end",))

    for event, elem in context:
        if elem.tag != "torrent":
            continue

        # Поиск по всему тексту элемента (title, description и т.п.)
        block_text = ET.tostring(elem, encoding="unicode", method="text").lower()

        if not all(word in block_text for word in words):
            elem.clear()
            continue

        # Извлекаем title
        title_elem = elem.find("title")
        title = title_elem.text.strip() if title_elem is not None and title_elem.text else None

        # Хеш лежит прямо в атрибутах самого <torrent>
        hash_value = elem.attrib.get("hash")

        if title and hash_value and len(hash_value) == 40:
            print(f"📁 Название: {title}")
            print(f"🔑 Хеш:     {hash_value}")
            print(f"🧲 Magnet:   magnet:?xt=urn:btih:{hash_value}")
            print("-" * 70)

        elem.clear()  # освобождаем память

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("Использование:")
        print("  python search_rutracker.py <путь_к_xml> \"ключевые слова\"")
        print("Пример:")
        print('  python search_rutracker.py rutracker.xml "matrix 1999"')
        sys.exit(1)

    xml_file = sys.argv[1]
    search_query = sys.argv[2]

    if not Path(xml_file).exists():
        print(f"❌ Файл не найден: {xml_file}")
        sys.exit(1)

    print(f"🔍 Ищем: \"{search_query}\"")
    print("=" * 70)
    search_rutracker(xml_file, search_query)
Можно доработать: сохранять результаты в CSV, искать только по определённым форумам, извлекать список файлов и т.д.

4. Другие готовые инструменты trusearch - очень мощный CLI-инструмент специально для этих дампов. Он есть на гитхабе.
Конвертеры в SQLite (от y3401, Saiv46 и др.) - после конвертации можно делать быстрые SQL-запросы.
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый Вчера, 08:45   #8
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

re.split(r"</torrent>", content) может работать неидеально, если в дампе есть вложенные теги или переносы строк внутри блока-в больших XML бывают сюрпризы. Для надёжности лучше использовать XML‑парсер (например, xml.etree.ElementTree или lxml) вместо регулярных выражений.

В строке hash="([A-Fa-f0-9]{40})" шаблон верный для BTIH‑хеша, но если в XML хеш хранится без кавычек или в другом атрибуте, поиск не сработает.

Для больших файлов (сотни мегабайт и больше) чтение всего файла в память через f.read() может быть не самым эффективным-лучше потоковая обработка.
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый Вчера, 08:56   #9
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

Искать только по названию, а не по всему тексту: тогда вместо ET.tostring(...).lower() - = title и проверяй слова только в нём-будет быстрее и точнее.
Вывод в CSV: можно накапливать результаты и в конце записать в файл, чтобы не терять вывод при большом числе совпадений.
Учёт регистра и спецсимволов: если нужны более сложные правила поиска, можно добавить нормализацию (удалять лишние пробелы, заменять тире/минус и т.д.).
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Старый Вчера, 09:06   #10
Дмитрий
Администратор
 
Аватар для Дмитрий
 
Турниров выиграно: 1

Регистрация: 12.12.2008
Адрес: Москва прошлого тысячелетия.
Сообщений: 218,011
Сказал(а) спасибо: 46,234
Поблагодарили 275,544 раз(а) в 104,686 сообщениях
Дмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспоримаДмитрий репутация неоспорима
По умолчанию

Неофициальная база тем и раздач RuTracker.ORG v. 20220516 (16 мая 2022 год)
__________________
О нас думают плохо лишь те, кто хуже нас. А те, кто лучше нас, им просто не до нас.
--Омар Хайям

Обновления по запросу — на Я.Ди. «Мэйл-облако» для тех, кто помогает нашему интернет-проекту, и для тех, кто хотел бы это делать, но пока не знает, как.

Помогая форуму ВТО, вы прежде всего помогаете себе! А не делаете что-то абстрактное для «других», совершенно незнакомых и безразличных вам людей.
Дмитрий вне форума   Ответить с цитированием
Ответ

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 00:35.


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Rambler's Top100 Республика Татарстан - Каталог сайтов