Пидоры-Кодеры помогите! / фронтенд :: пидоры помогите (реактор помоги)

пидоры помогите фронтенд 

Пидоры-Кодеры помогите!

Дорогие Пидоры! Давеча мой старый заказчик, которому я много лет разрабатываю сайты, медиаконтент и настраиваю рекламу, стал нуждаться в генерации xml - карточек для их импорта в стороннюю базу: https://turk.estate/instructions/xml-import-description/

"Что может быть проще?" - подумал я. И согласился разработать для него десктопное приложение с окошками, которые он будет заполнять нужной информацией, чтобы потом приложение генерировало файл по ТУ. 

Когда-то давно, в школьные времена, я принимал участие в олимпиадах по программированию (там где нужно разработать оптимальный код и соревноваться с другими командами в скорости выполнения алгоритма), писал примитивные изометрические игрушки, потом (больше 10 лет назад) написал на коммерческой основе несколько офисных приложений для учета, и до сих пор периодически помогаю детям друзей с курсовыми  работами на Pascal, так что, сейчас, соглашаясь на работу, я был полностью уверен в своих силах: "Сгенерировать xml - проще простого, а с визуальной средой уж как-нибудь разберусь, наверняка есть гора готовых решений. Или на крайний случай скачаю модуль мышки, модуль работы с буфером обмена, буду считывать координаты кликов мыши, напишу систему ввода с клавиатуры, чтобы работали все служебные кнопки и по пикселям из линий соберу окошко, чтобы было похоже на нормальный фронт".  

Проблема, как вы уже могли догадаться по ходу мысли выше, что я консольщик в чистом виде и знаю только Pascal. Ни смотря на то, что занимаюсь разработкой сайтов, php и js я тоже не знаю. Ну, я могу поправить чужой код, чтобы он делал ровно то, что мне требуется, но написать его с нуля - невыполнимая задача (мне это и не требуется, коды понимаю, а при современном количестве плагинов под WP можно сделать буквально любой функционал на сайте с нынешними навыками).

Ну, и, да, еще лет 5 назад во время отпуска сел за Unity, подучил C#, и тоже что-то смог написать, но про семейство C уже не помню ничего.

За задачу я взялся за бесценок, просто потому, что хотел "тряхнуть стариной", люблю кодить, задача выглядела нереально простой, а в обычной жизни возможность что-то написать представляется нечасто. 

План был такой:

1) Загуглить готовый код для какой-нибудь понятной среды, и его  поправить, ведь, задача тривиальная и, наверняка, ее решили до меня 100 раз. Но оказалось, что то ли гугл-выдача неудачно эволюционировала, то ли запросы неправильные ввожу.

2) Подумать, как собрать самому. Подумал. Оказалось, что даже чтобы подключить к Паскалю буфер обмена - нужно вынести себе мозг. Учитывая, что я уверен, что существует готовое решение, хочется браться за этот вариант в последнюю очередь.

3) Нейросети??? Не знаю я как ими воспользоваться с моими вводными и никогда этого не делал.

4) Прийти жаловаться на Реактор.

ТЗ: 

Манагер садится за комп, копипастит с сайта в приложку описание из карточки товара и ссылки на картинки, нажимает кнопку "сгенерировать" и получает на выходе xml, который импортирует на сторонний сайт. Приложка может быть десктопной или в вебе - всем насрать.

Бэкенд на любом языке по примеру если уже есть функция записи переменных в файл, я напишу. Откуда взять фронт с минимальными трудозатратами - не понимаю и, вообще, как оказалось, в нем не разбираюсь.

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

А я пока что ковыряю Delphi и смотрю, могу ли я в нем быстро разобраться, так что надеюсь на идеи не про Delphi.

Заранее спасибо за вашу мудрость, Пидоры :3

ИСПОЛЬЗОВАТЬ ТОЛЬКО В СЛУЧАЕ КРАЙНЕЙ НЕОБХОДИМОСТИ
Ж,пидоры помогите,реактор помоги,фронтенд
Подробнее
ИСПОЛЬЗОВАТЬ ТОЛЬКО В СЛУЧАЕ КРАЙНЕЙ НЕОБХОДИМОСТИ Ж
пидоры помогите,реактор помоги,фронтенд
Еще на тему
Развернуть
"я много лет разрабатываю сайты" дальше не читал, попробуй электрон.
Ahiru Ahiru 17.03.202416:34 ответить ссылка 0.7
Может для начала ТЗ по человечески распишешь?
А то по описанию у тебя XML из пары строчек, чего там гегерировать-то?
Shroom Shroom 17.03.202416:34 ответить ссылка 0.0
Я все написал про ТЗ. В окошки приложения вводится текст, потом из них генерится xml. Длина выходного xml не влияет на фронт, как мне кажется). Мне нужно выбрать среду разработки и в идеале - найти готовый код.
7r3_ 7r3_ 17.03.202416:36 ответить ссылка -0.1
Сейчас ознакомлюсь, спасибо!
7r3_ 7r3_ 17.03.202416:44 ответить ссылка 0.0
Ну если тебе вообще ничего не нужно больше, кроме того, чтобы n-ссылок и текстовое описание без какой-либо особой верстки запихать в XML по шаблону, то можешь посмотреть решения на питоне.
Для тебя наверное будет самый простой вариант.
Shroom Shroom 17.03.202416:41 ответить ссылка 0.0
Самый примитивный вариант даже chatgpt делает в один запрос:
import tkinter as tk
import xml.etree.ElementTree as ET
import tkinter.messagebox

class ProductGenerator:
def __init__(self, master):
self.master = master
master.title("Генератор продукта")

self.label = tk.Label(master, text="Введите описание товара:")
self.label.pack()

self.description_entry = tk.Entry(master, width=50)
self.description_entry.pack()

self.links_label = tk.Label(master, text="Введите ссылки (до 5):")
self.links_label.pack()

self.link_entries = []
for i in range(5):
entry = tk.Entry(master, width=50)
entry.pack()
self.link_entries.append(entry)

self.generate_button = tk.Button(master, text="Сгенерировать", command=self.generate_xml)
self.generate_button.pack()

def generate_xml(self):
description = self.description_entry.get()
links = [entry.get() for entry in self.link_entries if entry.get()]

if not description or not links:
return

product = ET.Element("product")
description_element = ET.SubElement(product, "description")
description_element.text = description

for link in links:
link_element = ET.SubElement(product, "link")
link_element.text = link

tree = ET.ElementTree(product)
tree.write("product.xml", encoding="utf-8", xml_declaration=True)

self.description_entry.delete(0, tk.END)
for entry in self.link_entries:
entry.delete(0, tk.END)

self.show_success_message()

def show_success_message(self):
success_message = "XML файл успешно создан: product.xml"
tk.messagebox.showinfo("Успех", success_message)


def main():
root = tk.Tk()
app = ProductGenerator(root)
root.mainloop()

if __name__ == "__main__":
main()
Shroom Shroom 17.03.202417:06 ответить ссылка 0.4
Даже работает исправно, если кому интересно. Допилить напильником дело пары минут.
product = ET.Element("product")
description_element = ET.SubElement(product, "description”) descriptionelement.text = description
for link in links:
linkelement = ET.SubElement(product, "link") link_element.text = link
tree = ET.ElementTree(product)
tree.write("product.xml", encoding="utf-8",
Shroom Shroom 17.03.202417:08 ответить ссылка 0.2
Ух ты. Благодаря тебе увидел магию и заинтересовался. Спасибо.
7r3_ 7r3_ 17.03.202417:14 ответить ссылка 0.0
Вот данные, которые вносятся в xml
Кнопки для стандартных значений, текст, ссылки текстом.
Добавить к сравнение (0)
Добавить в избранное (0)
Просмотре
L 	i		лгйЛЕГ	
ч •			вЯтП
	■Ш		
I		'	К1 Г J ад
	
	т
9	■& в ± ID А
ОПИСАНИЕ ЖК YEKTA KINGDOM PREMIUM
Добро пожзловзтв в Бзше личное королевс-ве на берегу Средиземного моря
Компания Yekta Нотез начинает стрс/телвство самого
7r3_ 7r3_ 17.03.202416:40 ответить ссылка 0.0
Сделай расширение для браузера, которое прямо со страницы будет всё нужное парсить и выплёвывать xml.
rigour rigour 17.03.202416:37 ответить ссылка 1.1
Сейчас почитаю, как это делать, спасибо!
7r3_ 7r3_ 17.03.202416:44 ответить ссылка 0.0
Голосую за этот вариант.
Я сам давно зарёкся что-то копипастить из броузера, кроме чистого текста, потому что скопированный из отрендеренной веб-страницы контент оказывается попердоленным до неузнаваемости. А если парсер работает в броузере, с исходным материалом - там всё более-менее понятно и предсказуемо.
На этот вариант моих возможностей бы хватило - скачивать БД с сайта и при помощи приложения конвертировать ее в формат принимающей стороны, но поля на сайте заказчика и у принимающей стороны различаются, так что требуется менеджер, который перераспределит данные.
7r3_ 7r3_ 17.03.202416:52 ответить ссылка 0.9
Паскаль, дельфи, пхп. В 2007 год никто не вернётся, уважаемый.
yoburg yoburg 17.03.202416:37 ответить ссылка 0.2
Да, я знаю(
Поэтому и родилась ситуация и решаю, чему, чтобы ее решить, научиться.
7r3_ 7r3_ 17.03.202416:39 ответить ссылка -0.1
"занимаюсь разработкой сайтов, php и js я тоже НЕ знаю"
Ееебааать...
diofjs diofjs 17.03.202416:37 ответить ссылка 1.1
Считай, что я дизайнер, если это будет менее оскорбительно звучать для почтенных разработчиков)
7r3_ 7r3_ 17.03.202416:43 ответить ссылка -0.1
Проще уж js плагин к браузеру написать, чем приложение. Раз карточка товара уже есть на сайте в html формате, то она там явно как-то размечена.
(вообще, тут похоже тот уникальный случай, когда может пригодиться XSLT, которым нас давным давно в универе мучили - как раз из html можно выдернуть текст в разных полях и выдать это ввиде XML. Но, это та еще муть).
У js есть доступ к DOM, смотрите какие части вам нужны, в цикле выдерайте из них текст и в виде xml впихивайте в какое-нибудь текстовое поле. Пусть пользователь уже это просто копипастит в xml файл. А вообще есть возможность, что оттуда можно прям в xml файл сохранить сразу. jKelly image downloader же как-то с реактора картинки сохраняет в файлы. Делайте текстовое поле невидемим. Тогда вообще будет одна кнопка "сделать зашибись" на сайте. Но я тут не специалист.

Правда, чтобы это работало, надо чтобы разметка сайта не менялась. Вообще, если сайт принадлежит заказчику, то самый простой вариант изменить прямо код сайта. Какая-нибудь особая ссылка вроде сайт/товар/xml работает только для админа или авторизированного пользователя, а там код бакенда вместо генерации html страницы с товаром сразу генерирует xml файл. Из кода вообще почти на любом языке/фреймворке там в итоге будет только один шаблон их xml тегов, где будут расставлены имена полей из базы данных.
wataru wataru 17.03.202416:44 ответить ссылка 0.0
Это был мой первый вариант решения - скачивать каталог с сайта заказчика (который разрабатывал я) и конвертировать в формат БД партнера заказчика. К сожалению, поля не совпадают, и требуется рука менеджера.
7r3_ 7r3_ 17.03.202416:50 ответить ссылка 0.0
Неужели жта рука менеджера не автоматизируется? Что, там надо какое-то текстовое значение по смвслу пилить на несколько разных полей в выходном xml файле? Никакого другого препятствия даже предствить не могу.
wataru wataru 17.03.202416:52 ответить ссылка 0.0
Именно!

Часть того, что на сайте заказчика находится в описании - у принимающей стороны существует в виде атрибутов. И наоборот.
Нужно было бы автоматизировать анализ текста и на его основе заполнять переменные.
И после этого все равно потребовался бы менеджер, чтобы проверить, что все сделано правильно.
7r3_ 7r3_ 17.03.202417:01 ответить ссылка 0.0
> И наоборот

Ну, наоборот - вообще не проблема. Объединить разные поля - для компьютера тривиальная задача.

Тогда еще вариант все-равно с сайтом: выдаете внутреннюю страницу, где все есть несколько Input-ов - соответствующих полям выходного формата в xml файле. Все поля из вашей базы туда куда-то заполнены. Юзер руками часть данных из одних полей, где оно намешано, вырезает в другие пустые, жмет кнопку и или сервер выдает xml файл из этих Input-ов, или js скрипт его локально генерирует и сохраняет. Этот вариант устойчив к разметке сайта. Пока формат БД не поменяется - все будет работать.
wataru wataru 17.03.202417:12 ответить ссылка 0.0
Ещё вариант накину – сделать это на Django, взаимодействие с юзером в браузере, обработка данных с JS в том же браузере и/или в Python.

Qt вполне подойдет, гуи для десктопов, xml writer/reader классы уже есть, но надо в плюсы понимать чутка.

tsaah tsaah 17.03.202417:05 ответить ссылка 0.0
Уважаемые, всем спасибо. Узнал, что такое DOM, увидел пример как пользоваться chatgpt, открыл для себя, что писать расширения для браузеров - просто, и вообще. Много всего интересного, чему сейчас буду учиться. Вы - классные.
7r3_ 7r3_ 17.03.202417:20 ответить ссылка 0.2
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
КУПОН
НА 1 помощь КУПОН
НА 1 помощь на 1 помочь