Библиотека Флибуста (Flibusta) 7z + FLibrary + inpx - 01.09.2025 [FB2]

Страницы :   Пред.  1, 2, 3, ... 11, 12, 13  След.
Ответить
 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 20-Янв-25 19:42 (7 месяцев назад, ред. 20-Янв-25 19:42)

HeimdallrNSK писал(а):
к исходной раздаче, которую не смогут поддерживать сделавшие обрезание.
Во-первых, спасибо вам за ваш развернутый ответ. Во-вторых, да, после "чистки" inpx не будет соответствовать расположению файлов внутри архива, но есть Flibusta parcer, с помощью нее можно сделать новый inpx на новые архивы и не важно, как они (файлы) там в архивах расположены. Но это я уже скорее обращаюсь к тем, кто захочет это делать, коль уж у вас нет трепета от своей раздачи)) (для справки в Lightlib при создании коллекции есть функция синхронизации файлов с файлом inpx, где даже после чистки каждая книга "встанет на свое место" и будет соответствовать.)
Скажи, достал уже со своим LightLib ))
[Профиль]  [ЛС] 

Taiseki

Стаж: 2 года 1 месяц

Сообщений: 2


Taiseki · 20-Янв-25 19:48 (спустя 6 мин.)

Спасибо за раздрачу и за ваш труд! Подскажите, как в "Шаблон экспорта книг" поставить вместо полных инициалов автора только фамилию первого? Пример: "Булгаков Михаил Афанасьевич" -> "Булгаков". Или нет такой возможности? Искал на гитхабе, не нашёл параметров.
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 21-Янв-25 10:24 (спустя 14 часов, ред. 02-Фев-25 19:55)

Taiseki писал(а):
87285911Спасибо за раздрачу и за ваш труд! Подскажите, как в "Шаблон экспорта книг" поставить вместо полных инициалов автора только фамилию первого? Пример: "Булгаков Михаил Афанасьевич" -> "Булгаков". Или нет такой возможности? Искал на гитхабе, не нашёл параметров.
Пока такой возможности нет. Если надо - сделаю. Оформите тикет?
ПС Список всех доступных макросов можно посмотреть (и вставить нужный) в контекстном меню редактирования шаблона. А на гитхабе вот они.
ППС О! Придумал замануху Для всех, кто запилит тикет на гитхабе, предоставлю предрелизную спецсборку FLibrary с реализацией этого тикета + всё, что уже сделано но пока не ушло в релиз. C упоминанием автора тикета в About...
ПППС Сделал, войдёт в версию 1.7.2.
totnin писал(а):
87285878Скажи, достал уже со своим LightLib ))
Да ладно. Ссылка-то на таинственного Витовта (сборник компиляций) будет? Мне ж интересно, чо там и как.
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 21-Янв-25 14:18 (спустя 3 часа, ред. 21-Янв-25 14:18)

HeimdallrNSK писал(а):
Да ладно. Ссылка-то на таинственного Витовта (сборник компиляций) будет? Мне ж интересно, чо там и как.
Да, соррямба, что-то замечтался) Витовт
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 21-Янв-25 17:10 (спустя 2 часа 52 мин., ред. 22-Янв-25 08:30)

totnin писал(а):
87284435хотел воспользоваться вашим fb2cut, но почему то после вскрытия архива файл внутри с крякозябрами
totnin писал(а):
87288653Витовт
Ааа, ну это классика. С некошерными буквами в именах файлов на винде первый релиз всегда комом , по крайней мере у меня. Вот и сейчас, либа, которую FLibrary (и fb2cut) используют для работы с zip вместо кириллицы извлекает почему-то кракозябрицу. Ну может исправлю когда-нибудь. Я бы на вашем месте переименовал всю эту ботву в правоверные цифры
например так
Код:

@echo off
setlocal EnableDelayedExpansion
set num=100000000
for /F "delims=" %%i in ('dir /B *.fb2') do (
   set /A num+=1
   ren "%%i" "!num:~1!.fb2"
)
всё равно же собираетесь скармливать в архиве каталогизатору. А потом в zip и на приём к доктору fb2cut. У меня получилось:
скрытый текст
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 21-Янв-25 17:18 (спустя 8 мин., ред. 21-Янв-25 17:27)

HeimdallrNSK писал(а):
Ааа, ну это классика. С некошерными буквами в именах файлов на винде первый релиз всегда комом
Думаю, дело не в именах файлов, а в неверно заданной строке архиватора, где нет указания на utf-8 (не помню, -MCU, вроде)..мне кажется, дело в этом. Либо в среде UNIX, в которой вы скорее всего работаете. Каталогизатор то понятно, увидит все как надо, но хотелось бы иметь порядок в архивах))

[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 21-Янв-25 17:26 (спустя 7 мин., ред. 21-Янв-25 17:49)

totnin писал(а):
87289278
HeimdallrNSK писал(а):
Ааа, ну это классика. С некошерными буквами в именах файлов на винде первый релиз всегда комом
Думаю, дело не в именах файлов, а в неверно заданной строке архиватора, где нет указания на utf-8 (не помню, -MCU, вроде)..мне кажется, дело в этом. Либо в среде UNIX, в которой вы скорее всего работаете. Каталогизатор то понятно, увидит все как надо, но хотелось бы иметь порядок в архивах))
Нет, посмотрите в архивы с картинками, для них 7z.exe не используется. Там тоже кракозябры. Дело именно в либе, которая достаёт файлы из архива
и тут всё плохо
в исходном архиве

а в дебаге упс
Порядок и имена в файловой системе с кириллицей - вещи несовместные
ПС Вот по быстрому собрал прототип с другой либой:
а тут уже всё хорошо
в дебаге:

в результирующем 7z-архиве

так что не надо ему никаких специальных ключей
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 21-Янв-25 17:47 (спустя 21 мин., ред. 21-Янв-25 17:52)

Я уже начинаю терять нить, поэтому начну сначала)
Все дело в вашем Fb2cut и заданных параметрах для архиватора, потому что скармливаю ему архив с нормальными файлами, а на выходе ЭТО) И все дело именно в этой строчке a -mx9 -sdel -m0=ppmd -ms=off -bt ...не подскажите, как в нее добавить параметр -mcu ?) А то я не кулхацкер)
П.С. И если можно, добавить параметр -tzip ... надеюсь, он не будет конфликтовать с методом сжатия ppmd
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 21-Янв-25 17:50 (спустя 3 мин.)

totnin писал(а):
87289419Я уже начинаю терять нить, поэтому начну сначала)
Все дело в вашем Fb2cut и заданных параметрах для архиватора, потому что скармливаю ему архив с нормальными файлами, а на выходе ЭТО) И все дело именно в этой строчке a -mx9 -sdel -m0=ppmd -ms=off -bt ...не подскажите, как в нее добавить параметр -mcu ?) А то я не кулхацкер)
Нет. Не поможет. Перечитайте
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 22-Янв-25 01:22 (спустя 7 часов, ред. 22-Янв-25 01:22)

HeimdallrNSK писал(а):
Нет. Не поможет. Перечитайте
Ладно)) Сам поковыряю) Когда все получится, отпишусь)
Да, с архиватором была пустая затея)) В этом надо разбираться, а я далек от этого, поэтому пошел окольным путем. Вот FB2 Toolbox - бесплатная программа для эффективного переименования, перемещения и перекодирования книг в формате fb2, перекодировал заголовки из крякозябров обратно в норм.
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 22-Янв-25 08:33 (спустя 7 часов, ред. 02-Фев-25 10:41)

totnin писал(а):
87289459Да, с архиватором была пустая затея))
Во всём надо убедиться самостоятельно, да?
Цитата:
В этом надо разбираться
Что толку разбираться, если в используемой программе баг. Разве что руками пофиксить и собрать... но это путь кулхацкера Вряд-ли прям перекодировал. Полагаю, просто переименовал файлы в соответствии с тэгами метаданных fb2.
Вопрос в другом, а сожрёт ли каталогизатор такой архив (с кириллическими именами файлов). Подозреваю, что FLibrary, например, подавится. И вот это я точно буду править. Заодно и fb2cut на вашем сценарии скорее всего починится.
ПС Поправил, вошло в релиз 1.7.1
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 24-Янв-25 18:41 (спустя 2 дня 10 часов, ред. 24-Янв-25 18:41)

HeimdallrNSK писал(а):
Во всём надо убедиться самостоятельно, да?
Да, я как кот, который лезет в электрощиток, потому что там что-то гудит)
HeimdallrNSK писал(а):
просто переименовал файлы в соответствии с тэгами метаданных fb2.
Именно это и было сделано) Просто пол второго ночи не совсем способствует грамотному мыслеизложению)
HeimdallrNSK писал(а):
Вопрос в другом, а сожрёт ли каталогизатор такой архив (с кириллическими именами файлов).
Которым я пользуюсь..ну..который вон тот (не будем называть его имя, а то и так слишком часто), вот, он справился. Вопрос в том, как себя поведет Cool Reader на телефоне.
HeimdallrNSK писал(а):
Заодно и fb2cut на вашем сценарии скорее всего починится.
Вы большое дело делаете ( до людей еще не дошло, но уже скоро) и, главное, не сворачивайте, ибо "Таков Путь!")) ..."Почувствуй Силу, Люк!"))
*Это можно не комментировать, потому как уже был даден ответ* Но вот если бы вычистить раздачу от дублей (может и от всех языков, кроме русского), сделать inpx на новые архивы, и раздавать как самостоятельную Чистую обновляемую раздачу (а ведь размер уменьшился бы еще на треть:)), - это все - звезда Рунета..)
П.С. А ведь еще можно, после "чистки" библиотеки, каждую книгу закатать в свой архив, и без создания файла inpx, раздавать как Мобильная Версия Флибусты... Вся библиотека Флибусты на телефоне (или планшете) - это же огонь огненный!)) Такого же нет нигде в мире, чтобы 460 000 книг уместилось на смартфон ( читалка сканировать директорию, наверно, месяц будет)) А так как раздача будет без картинок и обложек, то есть No Covers Caсhe, то работать будет гораздо быстрее...вооо
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 02-Фев-25 02:34 (спустя 8 дней, ред. 02-Фев-25 02:34)

------------------------------------------
Всё ж таки расстарался и написал свой fb2CoversImagesCleaner :).
Fb2CoversCleaner
скрытый текст
import os
import zipfile
from lxml import etree
from io import BytesIO
import tkinter as tk
from tkinter import filedialog, messagebox, ttk, scrolledtext
from concurrent.futures import ThreadPoolExecutor, as_completed
import threading
# Функция для удаления картинок, обложек и ссылок из FB2
def remove_images_and_covers(root, remove_covers=True, remove_images=True):
# Удаление обложек (coverpage)
if remove_covers:
# Удаляем тег <coverpage>
coverpages = root.xpath('//*[local-name()="coverpage"]')
for cover in coverpages:
cover.getparent().remove(cover)
# Удаляем ссылки на обложки в <description>
description_images = root.xpath('//*[local-name()="description"]//*[local-name()="image"]')
for image in description_images:
image.getparent().remove(image)
# Удаление картинок (binary и image)
if remove_images:
# Удаление всех бинарных данных (картинки)
binaries = root.xpath('//*[local-name()="binary"]')
for binary in binaries:
binary.getparent().remove(binary)
# Удаление всех элементов <image>, ссылающихся на картинки
images = root.xpath('//*[local-name()="image"]')
for image in images:
image.getparent().remove(image)
# Функция для обработки одного FB2 файла
def process_fb2_file(file_path, output_folder, remove_covers=True, remove_images=True, log_callback=None, status_callback=None):
try:
if status_callback:
status_callback(f"Обработка файла: {os.path.basename(file_path)}")
with open(file_path, 'rb') as f:
fb2_content = f.read()
# Парсим FB2
parser = etree.XMLParser(remove_blank_text=True)
root = etree.fromstring(fb2_content, parser)
# Очистка FB2
remove_images_and_covers(root, remove_covers, remove_images)
# Сохранение результата
output_path = os.path.join(output_folder, os.path.basename(file_path))
with open(output_path, 'wb') as f:
f.write(etree.tostring(root, encoding='utf-8', pretty_print=True))
if log_callback:
log_callback(f"Обработан файл: {os.path.basename(file_path)}")
except Exception as e:
if log_callback:
log_callback(f"Ошибка в файле {os.path.basename(file_path)}: {str(e)}")
# Функция для обработки архива с FB2 файлами
def process_archive(input_archive, output_folder, remove_covers=True, remove_images=True, progress_callback=None, log_callback=None, status_callback=None):
# Создаем папку для выходных файлов
archive_name = os.path.splitext(os.path.basename(input_archive))[0] # Имя архива без расширения
output_archive_folder = os.path.join(output_folder, archive_name)
os.makedirs(output_archive_folder, exist_ok=True)
if status_callback:
status_callback(f"Распаковка архива: {os.path.basename(input_archive)}")
if log_callback:
log_callback(f"Распаковка архива: {os.path.basename(input_archive)}")
# Распаковываем архив
with zipfile.ZipFile(input_archive, 'r') as z:
z.extractall(output_archive_folder)
# Обрабатываем каждый FB2 файл в многопоточном режиме
files = [os.path.join(output_archive_folder, f) for f in os.listdir(output_archive_folder) if f.endswith('.fb2')]
total_files = len(files)
if status_callback:
status_callback(f"Найдено FB2 файлов: {total_files}")
if log_callback:
log_callback(f"Найдено FB2 файлов: {total_files}")
with ThreadPoolExecutor() as executor:
futures = [
executor.submit(process_fb2_file, file_path, output_archive_folder, remove_covers, remove_images, log_callback, status_callback)
for file_path in files
]
for i, future in enumerate(as_completed(futures)):
future.result() # Ждём завершения задачи
if progress_callback:
progress = int((i + 1) / total_files * 100)
progress_callback(progress)
if status_callback:
status_callback("Обработка завершена!")
if log_callback:
log_callback("Обработка завершена!")
if progress_callback:
progress_callback(100) # 100% завершено
# Функция для обработки неархивированных FB2 файлов
def process_single_file(input_file, output_folder, remove_covers=True, remove_images=True, log_callback=None, status_callback=None):
try:
if status_callback:
status_callback(f"Обработка файла: {os.path.basename(input_file)}")
with open(input_file, 'rb') as f:
fb2_content = f.read()
# Парсим FB2
parser = etree.XMLParser(remove_blank_text=True)
root = etree.fromstring(fb2_content, parser)
# Очистка FB2
remove_images_and_covers(root, remove_covers, remove_images)
# Сохранение результата
output_path = os.path.join(output_folder, os.path.basename(input_file))
with open(output_path, 'wb') as f:
f.write(etree.tostring(root, encoding='utf-8', pretty_print=True))
if log_callback:
log_callback(f"Обработан файл: {os.path.basename(input_file)}")
except Exception as e:
if log_callback:
log_callback(f"Ошибка в файле {os.path.basename(input_file)}: {str(e)}")
# Графический интерфейс
class FB2CleanerApp:
def __init__(self, root):
self.root = root
self.root.title("FB2 Cleaner")
self.root.geometry("750x600") # Фиксированные размеры окна
self.root.minsize(750, 600) # Минимальные размеры окна
# Переменные
self.input_paths = [] # Список выбранных файлов или архивов
self.output_folder = tk.StringVar()
self.remove_covers = tk.BooleanVar(value=True)
self.remove_images = tk.BooleanVar(value=True)
# Элементы интерфейса
tk.Label(root, text="Входные файлы или архивы:").grid(row=0, column=0, padx=10, pady=10)
self.input_entry = tk.Entry(root, width=50, state='readonly')
self.input_entry.grid(row=0, column=1, padx=10, pady=10)
self.select_input_button = tk.Button(root, text="Выбрать", command=self.select_input, width=15, height=1)
self.select_input_button.grid(row=0, column=2, padx=10, pady=10)
tk.Label(root, text="Папка для сохранения:").grid(row=1, column=0, padx=10, pady=10)
tk.Entry(root, textvariable=self.output_folder, width=50).grid(row=1, column=1, padx=10, pady=10)
self.select_output_button = tk.Button(root, text="Выбрать", command=self.select_output, width=15, height=1)
self.select_output_button.grid(row=1, column=2, padx=10, pady=10)
# Чекбоксы для выбора опций
tk.Checkbutton(root, text="Удалить обложки", variable=self.remove_covers).grid(row=2, column=0, padx=10, pady=10)
tk.Checkbutton(root, text="Удалить картинки", variable=self.remove_images).grid(row=2, column=1, padx=10, pady=10)
# Кнопка запуска
self.start_button = tk.Button(root, text="Очистить FB2", command=self.start_cleaning, width=20, height=2)
self.start_button.grid(row=3, column=1, pady=20)
# Прогресс бар
self.progress = ttk.Progressbar(root, orient="horizontal", length=500, mode="determinate")
self.progress.grid(row=4, column=0, columnspan=3, pady=10)
# Метка для отображения процентов
self.progress_label = tk.Label(root, text="0%")
self.progress_label.grid(row=5, column=0, columnspan=3, pady=10)
# Окно для логов
self.log_area = scrolledtext.ScrolledText(root, wrap=tk.WORD, width=80, height=20)
self.log_area.grid(row=6, column=0, columnspan=3, padx=10, pady=10)
self.log_area.configure(state='disabled') # Запрещаем редактирование
# Статус бар
self.status_var = tk.StringVar()
self.status_var.set("Готово")
self.status_bar = tk.Label(root, textvariable=self.status_var, bd=1, relief=tk.SUNKEN, anchor=tk.W)
self.status_bar.grid(row=7, column=0, columnspan=3, sticky=tk.W+tk.E)
# Выбор входных файлов или архивов
def select_input(self):
file_paths = filedialog.askopenfilenames(
title="Выберите файлы или архивы",
filetypes=[("FB2 Files", "*.fb2"), ("ZIP Archives", "*.zip")]
)
if file_paths:
self.input_paths = file_paths
self.input_entry.config(state='normal')
self.input_entry.delete(0, tk.END)
self.input_entry.insert(0, f"Выбрано файлов/архивов: {len(file_paths)}")
self.input_entry.config(state='readonly')
# Выбор папки для сохранения
def select_output(self):
folder_path = filedialog.askdirectory(title="Выберите папку для сохранения")
if folder_path:
self.output_folder.set(folder_path)
# Обновление прогресса
def update_progress(self, value):
self.progress['value'] = value
self.progress_label.config(text=f"{value}%")
self.root.update_idletasks() # Обновляем интерфейс
# Логирование
def log_message(self, message):
self.log_area.configure(state='normal') # Разрешаем редактирование
self.log_area.insert(tk.END, message + "\n") # Добавляем сообщение
self.log_area.configure(state='disabled') # Запрещаем редактирование
self.log_area.see(tk.END) # Прокручиваем до конца
# Обновление статуса
def update_status(self, message):
self.status_var.set(message)
self.root.update_idletasks() # Обновляем интерфейс
# Запуск очистки в отдельном потоке
def start_cleaning(self):
if not self.input_paths or not self.output_folder.get():
messagebox.showerror("Ошибка", "Укажите файлы/архивы и папку для сохранения!")
return
# Запускаем обработку в отдельном потоке
threading.Thread(
target=self._run_cleaning,
args=(self.input_paths, self.output_folder.get()),
daemon=True
).start()
# Основная логика очистки
def _run_cleaning(self, input_paths, output_folder):
try:
total_files = len(input_paths)
for i, input_path in enumerate(input_paths):
self.update_status(f"Обработка файла/архива {i + 1} из {total_files}: {os.path.basename(input_path)}")
if input_path.endswith('.zip'):
process_archive(input_path, output_folder, self.remove_covers.get(), self.remove_images.get(), self.update_progress, self.log_message, self.update_status)
else:
process_single_file(input_path, output_folder, self.remove_covers.get(), self.remove_images.get(), self.log_message, self.update_status)
self.update_progress(int((i + 1) / total_files * 100))
messagebox.showinfo("Готово", "Очистка завершена успешно!")
except Exception as e:
messagebox.showerror("Ошибка", f"Произошла ошибка: {str(e)}")
# Запуск приложения
if __name__ == "__main__":
root = tk.Tk()
app = FB2CleanerApp(root)
root.mainloop()
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 02-Фев-25 10:23 (спустя 7 часов, ред. 03-Фев-25 05:26)

totnin писал(а):
87340759Всё ж таки расстарался и написал свой fb2CoversImagesCleaner :).
Fb2CoversCleaner
скрытый текст
bla-bla-bla
И правильно! Хочешь сделать хорошо - сделай сам (c)
Раздача обновлена. Изменения:
1. Добавлено февральское обновление 2025г: f.fb2-811194-815075.7z и картинки к нему covers/f.fb2-811194-815075.zip, images/f.fb2-811194-815075.zip
2. Обновлён индексный файл flibusta_fb2_local.inpx
3. Дистрибы FLibrary (папка program) заменены актуальной версией 1.7.1
4. И две новости, плохая и хорошая: снова найдены косяки в архивах с картинками - дубли, пришлось их заменить. Зато раздача стала немножко стройнее. Ещё раз прошу прощения за доставленные неудобства.
Прошу перекачать torrent-файл.
[Профиль]  [ЛС] 

Yuri-G

Стаж: 16 лет 5 месяцев

Сообщений: 75


Yuri-G · 04-Фев-25 07:42 (спустя 1 день 21 час)

Установил программу, после запуска пишет, - Точка входа в процедуру SetThreadDescription не найдена в библиотеке DLL C:\Program Files\FLibrary\Qt6Core.dll Не подскажите в чем дело?
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 04-Фев-25 09:53 (спустя 2 часа 10 мин.)

Yuri-G писал(а):
87350338Установил программу, после запуска пишет, - Точка входа в процедуру SetThreadDescription не найдена в библиотеке DLL C:\Program Files\FLibrary\Qt6Core.dll Не подскажите в чем дело?
Винда какая? Работать будет как минимум на десятке x64. Если ваша винда соответствует, попробуйте другие инсталляторы программы, например портабельный.
[Профиль]  [ЛС] 

Yuri-G

Стаж: 16 лет 5 месяцев

Сообщений: 75


Yuri-G · 04-Фев-25 11:54 (спустя 2 часа 1 мин.)

Винда десятка x64. Портабельный пишет тоже самое.
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 04-Фев-25 12:50 (спустя 56 мин., ред. 04-Фев-25 12:50)

Yuri-G писал(а):
87351005Винда десятка x64. Портабельный пишет тоже самое.
Может, сборка винды старая? Тут пишут, поддерживается 1809 or later.
Последняя соломинка - попробуйте установить свежий пакет Microsoft Visual C++ Redistributable, например этот. Если это не поможет, значит не судьба.
ПС Увы, вы не первый сталкиваетесь с проблемой Qt6Core.dll + SetThreadDescription. В интернетах советуют поставить свежую винду, причём без "оптимизаций" от псевдоумельцев.
[Профиль]  [ЛС] 

Yuri-G

Стаж: 16 лет 5 месяцев

Сообщений: 75


Yuri-G · 04-Фев-25 15:21 (спустя 2 часа 30 мин.)

Установка Microsoft Visual C++ Redistributable не помогла. Да, винду давно не переустанавливал, видно придется заняться.
[Профиль]  [ЛС] 

Scary Vic

Стаж: 5 лет 9 месяцев

Сообщений: 7


Scary Vic · 09-Фев-25 15:31 (спустя 5 дней)

HeimdallrNSK писал(а):
Раздача обновлена. Изменения:
1. Добавлено февральское обновление 2025г: f.fb2-811194-815075.7z и картинки к нему covers/f.fb2-811194-815075.zip, images/f.fb2-811194-815075.zip
2. Обновлён индексный файл flibusta_fb2_local.inpx
3. Дистрибы FLibrary (папка program) заменены актуальной версией 1.7.1
4. И две новости, плохая и хорошая: снова найдены косяки в архивах с картинками - дубли, пришлось их заменить. Зато раздача стала немножко стройнее. Ещё раз прошу прощения за доставленные неудобства.
Прошу перекачать torrent-файл.
А при перекачке удалятся дубли?
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 10-Фев-25 09:41 (спустя 18 часов, ред. 10-Фев-25 09:44)

Scary Vic писал(а):
87374996
HeimdallrNSK писал(а):
4. И две новости, плохая и хорошая: снова найдены косяки в архивах с картинками - дубли, пришлось их заменить.
Прошу перекачать torrent-файл.
А при перекачке удалятся дубли?
Разумеется. Они же в были архивах, теперь их там нет. Если вы перехешируете раздачу и перекачаете архивы, то и у вас дублей не будет.
ПС Прошу понять, речь идёт не о дублях книг, а о дублях картинок, которые напихали в fb2 их авторы, не потрудившись раздать им разные имена. Я такого не ожидал, поэтому накосячил. И исправил, как только заметил косяк.
ППС Могу спорить, мало кто знает, что в архив можно поместить несколько одноимённых файлов. Я вот тоже не знал, думал, что архив подобен папке файловой системы. Теперь знаю
ПППС Впрочем, вставлю 5 копеек и по поводу дублей книг. Работа над инструментом по зачистке коллекции от всякого ненужного близка к завершению.
totnin писал(а):
87284435вычистил раздачу от дублей и удалил все языки кроме русского. Ну и для себя удалил два жанра - это фанфик и недописанное. Получилось 462 000 книг. ... вычищенная раздача в zip 80гб без картинок и обложек
Сделал то же в FLibrary 1.8.0. Изначально было 650 957 книг, на диске 158Г, без картинок 71.5Г. Было удалено 202 067 книг. Осталось 448 890, 114Г на диске, 46.5Г без картинок и обложек.
Цитата:
можно было бы ещё удалить мемуары и любовные романы - это еще минус 50 000 книг, но они пересекаются по другим жанрам и можно удалить что-то ценное
Удалил книги этих жанров, которые не входят в другие жанры, выпилилось ещё 53 828, осталось 395 062 книги, на диске 104Г, 40.7Г без картинок. Заметил, что многие любовные романы входят в жанр "Сетевая литература" и больше никуда. Почистил ещё раз, с учётом этого факта. Ещё минус 20 100 книг. В итоге имеем книг 374 962, на диске 101Г, 38.4Г без картинок.
Цитата:
И запаситесь терпением (по итогу оно того будет стоить:)) У меня 7 ультра, 22 потока - 6 часов на преобразование. Процесс очистки от дублей и прочего - минут 10.
С FLibrary на всё потребовалось минут 40. Работа шла в 1 поток, не стал заморачиваться с распараллеливанием, т.к. не частая операция, можно и подождать. К тому же там в основном дисковый ввод/вывод, а такое не особо-то и параллелится.
Оформлять такую обрезанную раздачу я, конечно же, не буду, т.к. у кого-то могут быть другие жанровые и языковые предпочтения, кто-то любит сравнивать между собой разные издания одной книги, а я их выпилил как дубли, и.т.д. Да и не нужна такая раздача, скоро каждый желающий сможет самостоятельно порезать библиотеку как ему угодно, не выходя из каталогизатора.
[Профиль]  [ЛС] 

kobra123321

Стаж: 5 лет

Сообщений: 7


kobra123321 · 11-Фев-25 05:52 (спустя 20 часов, ред. 11-Фев-25 05:52)

totnin писал(а):
87284435вычистил раздачу от дублей и удалил все языки кроме русского. Ну и для себя удалил два жанра - это фанфик и недописанное. Получилось 462 000 книг. ... вычищенная раздача в zip 80гб без картинок и обложек
Господа, а краткий гайд для особенных (меня) людей есть какой-то, как это сделать?
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 11-Фев-25 10:07 (спустя 4 часа, ред. 11-Фев-25 10:07)

kobra123321 писал(а):
87381740
totnin писал(а):
87284435вычистил раздачу от дублей и удалил все языки кроме русского. Ну и для себя удалил два жанра - это фанфик и недописанное. Получилось 462 000 книг. ... вычищенная раздача в zip 80гб без картинок и обложек
Господа, а краткий гайд для особенных (меня) людей есть какой-то, как это сделать?
Друг мой, ТС чуть выше написал, что готовится к выходу мега вундервафля FLibrary 1.8.0, в которой все эти функции (очистка, создание INPX и прочие плюшки) будут доступны по умолчанию.. Осталось только подождать. Но, если вам прям неймется, то вам понадобятся 2 (две) программы: WinRAR и Cleaner, который входит в пакет LightLib (находится в папке Utility).
1. Преобразовываете архивы в WInRAR из 7z в zip.
Цитата:
По WinRAR - открыли архиватор - Операции - Преобразовать архивы - Сжатие - Ставите zip и метод упаковки максимальный - ок - добавить архивы - ок (можно поставить галочку "удалить исходные архивы").
2. В Cleaner подгружаете свои архивы и файл INPX.
3. Далее расставляете галочки, где чего убрать, и жмете Пуск ( в данном случае "Удалить")..там, снизу будет.
Потренируйтесь на каком-нибудь одном архиве. Чтоб понятно стало.
Должен вас предупредить, после того, как вы вычистите архивы (библиотеку), из каталогизаторов вы сможете пользоваться только LIghtLIB, потому как только у него на данный момент есть "динамически расширяемая папка". MyHomeLib прочитает INPX, но книги в архивах "не будут соответствовать местоположению".
[Профиль]  [ЛС] 

kobra123321

Стаж: 5 лет

Сообщений: 7


kobra123321 · 11-Фев-25 10:58 (спустя 51 мин.)

totnin писал(а):
87381874
kobra123321 писал(а):
87381740
totnin писал(а):
87284435вычистил раздачу от дублей и удалил все языки кроме русского. Ну и для себя удалил два жанра - это фанфик и недописанное. Получилось 462 000 книг. ... вычищенная раздача в zip 80гб без картинок и обложек
Господа, а краткий гайд для особенных (меня) людей есть какой-то, как это сделать?
Друг мой, ТС чуть выше написал, что готовится к выходу мега вундервафля FLibrary 1.8.0, в которой все эти функции (очистка, создание INPX и прочие плюшки) будут доступны по умолчанию.. Осталось только подождать. Но, если вам прям неймется, то вам понадобятся 2 (две) программы: WinRAR и Cleaner, который входит в пакет LightLib (находится в папке Utility).
1. Преобразовываете архивы в WInRAR из 7z в zip.
Цитата:
По WinRAR - открыли архиватор - Операции - Преобразовать архивы - Сжатие - Ставите zip и метод упаковки максимальный - ок - добавить архивы - ок (можно поставить галочку "удалить исходные архивы").
2. В Cleaner подгружаете свои архивы и файл INPX.
3. Далее расставляете галочки, где чего убрать, и жмете Пуск ( в данном случае "Удалить")..там, снизу будет.
Потренируйтесь на каком-нибудь одном архиве. Чтоб понятно стало.
Должен вас предупредить, после того, как вы вычистите архивы (библиотеку), из каталогизаторов вы сможете пользоваться только LIghtLIB, потому как только у него на данный момент есть "динамически расширяемая папка". MyHomeLib прочитает INPX, но книги в архивах "не будут соответствовать местоположению".
Спасибо! Каюсь, не дождался, всегда хочется все и сразу, так что лучше подожду, чтоб можно было все почти как из "коробки" было. А так, спасибо за разъяснения, в любом случае!
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 11-Фев-25 14:35 (спустя 3 часа)

Состоялся релиз FLibrary 1.8.0.
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 11-Фев-25 18:23 (спустя 3 часа, ред. 11-Фев-25 19:36)

Проект потихоньку превращается во вполне себе Продукт - раздел "Деструктивные операции" тому подтверждение=) Вангую, в ближайшее время эта раздача станет основной неофициальной. Основная большая становится бессмысленной (огромный и неуклюжий мусоровоз - а зачем?) и наполнять ее будут исключительно как дань традиции, памяти создателей и все такое.
Что сразу бросилось в глаза:
1. Нет нормального поиска по книгам (и мы уже говорили об этом)). В моем представлении это следующий раздел после "Автор". Понятно, что книг гораздо больше, чем авторов, и выгрузка будет занимать время, а то и вообще "задушит" процесс. Здесь можно использовать Асинхронность (наверное =), дабы не блокировать основной поток. Поиск есть, но такой мудреный, что не каждый разберется))
2. Нет возможности спарсить INPX на всю библиотеку, только на отмеченные книги (как я понял), То есть нет возможности перенести "укороченную" библиотеку на другую машину, где у человека стоит более привычный, например, МайХоумЛиб, который без INPX не фурычит)
П.С. Так как можно прикрутить сторонние конвертеры и читалки для ознакомления с книгой, думаю, можно переходить как на основную..
П.С.С. Поигрался с очисткой - легкий рассинхрон ( 3 тыс. книг) в данных программ LightLib (после использования Cleaner) и Flibrary.
HeimdallrNSK писал(а):
87383129То, о чем так долго говорили большевики, свершилось. Теперь можно портить архивы =) Состоялся релиз FLibrary 1.8.0.
Спасибо!
[Профиль]  [ЛС] 

thoow

Стаж: 16 лет 9 месяцев

Сообщений: 52


thoow · 11-Фев-25 18:55 (спустя 31 мин.)

HeimdallrNSK писал(а):
87383129Состоялся релиз FLibrary 1.8.0.
Процесс идет, Спасибо!
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 12-Фев-25 11:41 (спустя 16 часов, ред. 12-Фев-25 11:41)

totnin писал(а):
873838471. Нет нормального поиска по книгам (и мы уже говорили об этом)). В моем представлении это следующий раздел после "Автор". Понятно, что книг гораздо больше, чем авторов, и выгрузка будет занимать время ...
Нет, тянуть на клиента полмиллиона строк - заведомый грех, такого точно не будет. Но есть багофича-лайфхак. Зайдите в поиск и поищите "%%%". Эта нехитрая sql-инъекция выберет все книги коллекции.
Цитата:
Поиск есть, но такой мудреный, что не каждый разберется))
Может быть когда-нибудь сделаю более юзер-френдли поиск. Тот, что есть сейчас сделан на коленке, для галочки, и в виде, соответствующем архитектуре проги. Главная проблема в том, что он мне лично не нужен, поэтому 1. я не очень представляю, как он должен выглядеть, 2. мне лень.
Цитата:
2. Нет возможности спарсить INPX на всю библиотеку, только на отмеченные книги (как я понял), То есть нет возможности перенести "укороченную" библиотеку на другую машину, где у человека стоит более привычный, например, МайХоумЛиб, который без INPX не фурычит)
Предлагаю человеку снести MHL и поставить вместо него FLibrary. Но вроде не сложно, сделаю. А пока можете воспользоваться описанным выше лайфхаком, потом Ctrl+A, Экспорт/Создать индекс(*.inpx)
Цитата:
П.С.С. Поигрался с очисткой - легкий рассинхрон ( 3 тыс. книг) в данных программ LightLib (после использования Cleaner) и Flibrary.
Цели копирования функциональности Cleaner'а не стояло, я его даже не видел. Зато готов рассмотреть багрепорты вида: при таких-то настройках такая-то книга удалилась, а не должна была. Или наоборот, должна была удалиться, но выжила. Велкам.
[Профиль]  [ЛС] 

totnin

Стаж: 10 лет 5 месяцев

Сообщений: 72


totnin · 12-Фев-25 12:10 (спустя 29 мин.)

HeimdallrNSK писал(а):
Нет, тянуть на клиента полмиллиона строк - заведомый грех, такого точно не будет. Но есть багофича-лайфхак. Зайдите в поиск и поищите "%%%". Эта нехитрая sql-инъекция выберет все книги коллекции.
Предлагаю человеку снести MHL и поставить вместо него FLibrary. Но вроде не сложно, сделаю. А пока можете воспользоваться описанным выше лайфхаком, потом Ctrl+A, Экспорт/Создать индекс(*.inpx)

Тут забавная хрень вылезла - Жанр "Мракобесие")) Причем, в официальной флибусте такого жанра нет.

И можно как-то поуже сделать окно, а то процентов тридцать ениспользуемого, которое съедает полезную площадь правого окна. Спасибо.
[Профиль]  [ЛС] 

HeimdallrNSK

Top Bonus 06* 50TB

Стаж: 15 лет 3 месяца

Сообщений: 295

HeimdallrNSK · 12-Фев-25 14:07 (спустя 1 час 56 мин., ред. 12-Фев-25 14:07)

totnin писал(а):
87386884Тут забавная хрень вылезла - Жанр "Мракобесие")) Причем, в официальной флибусте такого жанра нет.
Это не жанр, а жанровый подраздел. Моё творчество. Категорически против видеть жанры "Альтернативная медицина" и "Астрология" в приличных разделах "Наука" и "Религия".
Цитата:
И можно как-то поуже сделать окно, а то процентов тридцать ениспользуемого, которое съедает полезную площадь правого окна.
Сплиттер упирается в титл радиобаттона? Да, некрасиво. Надо разместить радиобаттоны один под другим. Пока можно переключить UI на English.
ПС. Ой. Пардон, тупанул. Это про другое окно было. Тут ширина навигации упирается в минимальную ширину комбобокса и поля ввода. Посмотрю. Но и тут смена языка немного помогает.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error