Foro insertmorecoins
MameARCADE & MameARCADEUI 0.243 NONAG You are not allowed to view links. Register or Login MESS 0.243 NONAG You are not allowed to view links. Register or Login ARCADE 0.243 NONAG (EL NUEVO MAMEUIFX) You are not allowed to view links. Register or Login MAMEPLUS 0.168 NONAG-DINPUT You are not allowed to view links. Register or Login MAME+MESS 0.241 NONAG You are not allowed to view links. Register or Login MAME SDL 0.218 You are not allowed to view links. Register or Login

Convertir XML a romlist txt

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado peppito

  • Usuario
  • Novato
  • *
    • Mensajes: 46
    • Popularidad: +0/-0
    • Ver Perfil
en: Miércoles , 19 de Junio de 2019, 01:58:51
Me podeis ayudar a convertir archivos xml en romlist txt?Hay alguna manera rapida y facil de hacerlo? gracias por la ayuda y sobretodo enhorabuena por el trabajo y animo a mantener este gran foro a [email protected]


Desconectado Jate

  • Novato
  • *
    • Mensajes: 27
    • Popularidad: +3/-0
    • Ver Perfil
Respuesta #1 en: Martes , 17 de Septiembre de 2019, 11:10:19
Aqui han puesto una web para hacerlo online, yo lo probe hace unos dias y sin problemas.

Aunque ahora parece que la web ha quedado archivada y no funciona, espero que lo solucionen pronto.

You are not allowed to view links. Register or Login


Desconectado InsertMoreCoins

  • Administrador
  • Sobrehumano
  • *****
    • Mensajes: 6680
    • Popularidad: +304/-13
    • Sexo:Masculino
  • Looking For Pedestrians
    • Ver Perfil
Respuesta #2 en: Martes , 17 de Septiembre de 2019, 01:55:53
You are not allowed to view links. Register or Login en el mismo foro de attractmode hay una herramienta hecha en python para descargarla y poder usarla para realizar lo que comentas.

Pasate por aqui y sigue las instrucciones para realizar el proceso

You are not allowed to view links. Register or Login

Si el anterior no funcion aporque tu lo quieres para otro formato, tienes otro programa descargable aqui con las instrucciones de como usarlo

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login


Desconectado Jate

  • Novato
  • *
    • Mensajes: 27
    • Popularidad: +3/-0
    • Ver Perfil
Respuesta #3 en: Martes , 17 de Septiembre de 2019, 04:37:56
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login en el mismo foro de attractmode hay una herramienta hecha en python para descargarla y poder usarla para realizar lo que comentas.

Pasate por aqui y sigue las instrucciones para realizar el proceso

You are not allowed to view links. Register or Login

Si el anterior no funcion aporque tu lo quieres para otro formato, tienes otro programa descargable aqui con las instrucciones de como usarlo

You are not allowed to view links. Register or Login

Pero ese programa funciona con python y al menos yo no sé como va. Se puede usar en windows?


Desconectado InsertMoreCoins

  • Administrador
  • Sobrehumano
  • *****
    • Mensajes: 6680
    • Popularidad: +304/-13
    • Sexo:Masculino
  • Looking For Pedestrians
    • Ver Perfil
Respuesta #4 en: Martes , 17 de Septiembre de 2019, 05:34:13
You are not allowed to view links. Register or Login
Pero ese programa funciona con python y al menos yo no sé como va. Se puede usar en windows?

Simplemente tendrías que instalar python (cuando lo instales tienes que poner que se instale en PATH , te lo pone directamente en una de las opciones) y luego seguir los pasos que ves en ese hilo.
Sin instalarlo en windows no te funcionará porque le faltaran librerías, pero una vez instalado debería de funcionaros correctamente.

De todas formas no se que es lo que quereis conseguir... ¿como tendría que ser el listado resultante que queréis tener? Lo digo porque a lo mejor hasta es más fácil directamente con un .bat y crearselo uno mismo
You are not allowed to view links. Register or Login


Desconectado Jate

  • Novato
  • *
    • Mensajes: 27
    • Popularidad: +3/-0
    • Ver Perfil
Respuesta #5 en: Jueves , 19 de Septiembre de 2019, 04:02:24
Pues el listado que te saca el emulationstation en xml es algo asi:

Citar
<game id="765" source="ScreenScraper.fr">
      <path>./Aladdin (Europe).zip</path>
      <name>Aladdin</name>
      <desc>Aladdin esquiva a los guardias en las calles de Agrabah, mientras intenta evitar las trampas disimuladas de la Cueva de las Maravillas y los peligros del Palacio del Sultán. Móntate en la Alfombra Mágica y cruza el imponente cielo. Luego desafía al Malvado Jafar a un duelo final de espadas y magia</desc>
      <rating>12</rating>
      <releasedate>19940101T000000</releasedate>
      <developer>Sims</developer>
      <publisher>Sega</publisher>
      <players>1</players>
      <hash>C8718D40</hash>
      <image>./media/images/Aladdin (Europe).png</image>
      <genre>Plataforma</genre>
      <region>Europa</region>
   </game>

Y los datos en attract mode están asi:

Citar
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons
ddonpach;DoDonPachi (International, Master Ver. 97/02/05);Cave;;1997;Cave (Atlus license);;;;;;;;;;;;;;;;;;;;

Y lo que hace falta es coger los datos de una tabla a otra.

Yo no he necesitado exportar nada aun pero no veo muchos datos a exportar...

Yo sé que el scraper del attract mode no funciona ahora mismo (no sé si en alguna beta lo han arreglado) y de momento no sé otra forma de recopilar datos.

EDIT: Para evitar el doble post

You are not allowed to view links. Register or Login
Ahora estoy en el tema de recopilar datos y necesito ayuda.

Ahora que está arreglado el scraper de attract mode los datos que van al romlist.txt se pueden obtener con el scraper desde TheGamesDB,
y luego se crea un archivo de texto con la descripcion de cada juego en el interior (1 archivo por juego) que se guarda en la carpeta scraper/nombre_del_emulador/overview/.
El problema es que la descripcion del juego está en ingles.

¿Seria posible extraer de un xml las descripciones de los juegos y crear un archivo de texto para cada juego que incluya esa descripcion?

Es decir, yo tengo el archivo xml asi:

Código: You are not allowed to view links. Register or Login
<game id="765" source="ScreenScraper.fr">
      <path>./Aladdin (Europe).zip</path>
      <name>Aladdin</name>
      <desc>Aladdin esquiva a los guardias en las calles de Agrabah, mientras intenta evitar las trampas disimuladas de la Cueva de las Maravillas y los peligros del Palacio del Sultán. Móntate en la Alfombra Mágica y cruza el imponente cielo. Luego desafía al Malvado Jafar a un duelo final de espadas y magia</desc>
      <rating>12</rating>
      <releasedate>19940101T000000</releasedate>
      <developer>Sims</developer>
      <publisher>Sega</publisher>
      <players>1</players>
      <hash>C8718D40</hash>
      <image>./media/images/Aladdin (Europe).png</image>
      <genre>Plataforma</genre>
      <region>Europa</region>
   </game>

A partir de ahi se podria conseguir un archivo de texto por cada juego? en este caso que se llame "Aladdin (Europe).txt" y que dentro del archivo esté el texto que hay en desc (Aladdin esquiva a los guardias en las calles de Agrabah, mientras intenta evitar las trampas disimuladas de la Cueva de las Maravillas y los peligros del Palacio del Sultán. Móntate en la Alfombra Mágica y cruza el imponente cielo. Luego desafía al Malvado Jafar a un duelo final de espadas y magia
« Última modificación: Lunes , 04 de Noviembre de 2019, 01:01:09 por InsertMoreCoins »


Desconectado InsertMoreCoins

  • Administrador
  • Sobrehumano
  • *****
    • Mensajes: 6680
    • Popularidad: +304/-13
    • Sexo:Masculino
  • Looking For Pedestrians
    • Ver Perfil
Respuesta #6 en: Lunes , 04 de Noviembre de 2019, 01:08:26
Ostias You are not allowed to view links. Register or Login pues asi a bote pronto lo que veo más factible es que en cada juego saquemos con un .bat el campo correspondiente a la descripcion para que te coja el campo en español y que luego tu lo copies manualmente al fichero .ini.

Te digo esto porque sería bastante rápido de hacer y no habría que ponerse a crear un script desde cero sin saber muy bien si nos iba a funcionar.

Tampoco se el volumen de la base de datos que vas a manejar asi que no se si cortar y copiar manual te va a llevar mucho.

Para sacar el campo <desc> de cada juego es tan sencillo como usar este script dentro de un .bat

Código: You are not allowed to view links. Register or Login
find /n /i "<desc>" "rutadondetengaseltxtoxml" > nombreficherosalida.txt

Este .bat lo que te hará sera sacarte el contenido dentro de la etiqueta <desc> de cada juego (si los juegos estan en un mismo fichero te saldran todos los campos desc de golpe) y te lo escribirá en el fichero de salida que le des. Luego solo sería copiar esa información al fichero que tu uses para dejarlo como tu quieres.

No se si es esto lo que pides, pero sin poder hacer un script propiamente dicho lo más rápido que se me ocurre para sacar esa info es esto. Si quieres trabajarlo un poco más y meter otros campos en el script poniendo mas líneas quizás lo puedas sacar mejor.
« Última modificación: Lunes , 04 de Noviembre de 2019, 01:43:54 por InsertMoreCoins »
You are not allowed to view links. Register or Login


Desconectado Jate

  • Novato
  • *
    • Mensajes: 27
    • Popularidad: +3/-0
    • Ver Perfil
Respuesta #7 en: Lunes , 04 de Noviembre de 2019, 06:05:07
Gracias por la respuesta, lo he probado y algo puede ayudar porque separas el texto que interesa del resto, pero luego en el txt está todo seguido, uno a continuacion del otro y no sabes a que juego pertenece cada descripcion...

Asi queda el contenido del txt:

Código: You are not allowed to view links. Register or Login
C:\AUTO\GAMELIST.XML
[6]          <desc>texto de un juego</desc>
[18]          <desc>texto de otro juego</desc>

Creo que igual seria mas comodo para copiar y pegar abrir directament el xml con el Office Word.

Bueno, miraré a ver si encuentro algo más o se me ocurre alguna idea y sinó tocará hacerlo a mano

EDITO (05/11/19):

Ha habido suerte y he encontrado en los foros de AM un script que hace exactamente lo que necesito, aquí está la direccion:

You are not allowed to view links. Register or Login

Lo que hay que hacer es:

- crea una carpeta y mete el archivo .py dentro
- copia el archivo .xml en la misma carpeta que has creado antes y renombra el archivo a gamelist.xml (si ya tiene ese nombre, pues no hay que hacer nada)
- dentro de esta carpeta donde está el .py y el gamelist.xml, crea una carpeta con el nombre "out" pero sin poner las comillas.

ahora ejecuta el script.

Este script en viejo y actualmente el Attract Mode tiene los archivos en otro formato. Yo sin idea de Python, con un poco de sentido comun he retocado el codigo para actualizarlo:

Código: You are not allowed to view links. Register or Login
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')

import xml.etree.ElementTree
e = xml.etree.ElementTree.parse('gamelist.xml').getroot()

f = 0
count = 0
for game in e:
    for data in game:
        if data.tag == "path":
          count = count + 1
          f = open("out/" + data.text + ".txt", "w")

        elif data.tag == "desc":
          if data.text != None:
            f.write(data.text.replace('\n','').replace("&quot;","\"").replace("&gt;",">").replace("&lt;","<").replace("&amp;","&"))

          f.close()

print(count)

Dentro de la carpeta "out", te habrá creado un archivo por juego y con el texto en el interior.

La unica pega es que el archivo tiene el nombre de la rom con la extension y debes quitar la extension.
Ejemplo:
Megaman.zip.txt   --- > renombralo a Megaman.txt

You are not allowed to view links. Register or Login

Se pueden renombrar todos los archivos de golpe, pero no recuerdo como se hacia...
y si alguien sabe arreglar el script para que no ponga la extension del archivo, soy todo oidos.


Luegos los archivos creados van dentro del la carpeta de Attract Mode en la carpeta:
scraper/nombre_que_le_has_puesto_al_emulador/overview/

Y listo
« Última modificación: Martes , 05 de Noviembre de 2019, 12:48:20 por Jate »


Desconectado InsertMoreCoins

  • Administrador
  • Sobrehumano
  • *****
    • Mensajes: 6680
    • Popularidad: +304/-13
    • Sexo:Masculino
  • Looking For Pedestrians
    • Ver Perfil
Respuesta #8 en: Martes , 05 de Noviembre de 2019, 12:39:12
You are not allowed to view links. Register or Login si quieres ver las dos partes en un mismo fichero .txt solo tendrías que editar el bat que te puse por algo asi:

Tienes que crearte una copia de la base de datos (o del fichero .txt que tengas lo que te he puesto yo es un ejemplo de una ruta random donde hay un .xml

Código: You are not allowed to view links. Register or Login
find /n /i "<name>" "Z:\Hyperspin\Databases\Sharp x68000\SHARP X680001.xml" > listajuegos1.txt
find /n /i "<desc>" "Z:\Hyperspin\Databases\Sharp x68000\SHARP X680001.xml" > listajuegos2.txt

copy *.txt output.txt

Esto dara como resultado que listajuegos1 saldra con la columna de name, listajuegos2 saldra con la columna desc y los dos ficheros se te juntaran en el llamado output.txt

Lo mismo asi lo puedes revisar mejor que de la otra forma
You are not allowed to view links. Register or Login


Desconectado Jate

  • Novato
  • *
    • Mensajes: 27
    • Popularidad: +3/-0
    • Ver Perfil
Respuesta #9 en: Martes , 05 de Noviembre de 2019, 12:49:52
You are not allowed to view links. Register or Login
He editado mientras posteabas... uf:()


Desconectado InsertMoreCoins

  • Administrador
  • Sobrehumano
  • *****
    • Mensajes: 6680
    • Popularidad: +304/-13
    • Sexo:Masculino
  • Looking For Pedestrians
    • Ver Perfil
Respuesta #10 en: Martes , 05 de Noviembre de 2019, 01:04:37
Joder vaya jaleo de script para sacar 2 lineas de un .txt ...

El nombre te lo cogera de la base de datos y por lo que veo en el script no podrías no hacer que te quite el .zip a menos que metieses más lineas de código a posta para eso, pero a saber como se haría.

Para lo del renombrado hab´ria que saber si todos los ficheros tienen ese nombre, es decir que fueses siempre:

nombredeljuego.zip.txt

porque sino la cosa va a ser más compleja.

en teoría podría funcionar algo asi:

Código: You are not allowed to view links. Register or Login
ren *_zip.txt *_.txt.*

Se supone que con esa sentencia no importa lo que este en el _ y solo editaria lo que esta como zip, pero haz un backup por si acaso que no se yo si estará bien.
You are not allowed to view links. Register or Login


Desconectado drewdty

  • Patreon
  • Principiante
  • *
    • Mensajes: 315
    • Popularidad: +10/-0
    • Sexo:Masculino
    • Ver Perfil
Respuesta #11 en: Martes , 05 de Noviembre de 2019, 05:07:49
You are not allowed to view links. Register or Login 
igual no es lo mismo pero yo lo hice con notepad++
voy ha buscar  en tu caso buscaria  <name>
le daria a la opcion buscar en archivo actual y te sale una lista debajo la copias y creas otro archivo en blanco y lo pegas
le das otravez a buscar <name> y le das a reemplazar en blanco y te los elimina
 y te quedaria por ejemplo Aladdin</name>
vuelves a buscar y busca </name> y ahora le das a remplazar y le pones .zip.txt
y te quedara    Aladdin.zip.txt
y ya esta  no se si eso es lo que buscas.

yo lo he hecho con el ini de scummvm para hacer una lista de los game id
ya diras como te fue
EDITO
luego guarda el achivo como romlist.txt ,claro
« Última modificación: Martes , 05 de Noviembre de 2019, 05:18:01 por drewdty »
¿Hay vida inteligente en el universo?
 Seguramente pero en este planeta NO


Desconectado Jate

  • Novato
  • *
    • Mensajes: 27
    • Popularidad: +3/-0
    • Ver Perfil
Respuesta #12 en: Miércoles , 06 de Noviembre de 2019, 09:32:53
You are not allowed to view links. Register or Login
Joder vaya jaleo de script para sacar 2 lineas de un .txt ...

El nombre te lo cogera de la base de datos y por lo que veo en el script no podrías no hacer que te quite el .zip a menos que metieses más lineas de código a posta para eso, pero a saber como se haría.

Para lo del renombrado hab´ria que saber si todos los ficheros tienen ese nombre, es decir que fueses siempre:

nombredeljuego.zip.txt

porque sino la cosa va a ser más compleja.

en teoría podría funcionar algo asi:

Código: You are not allowed to view links. Register or Login
ren *_zip.txt *_.txt.*

Se supone que con esa sentencia no importa lo que este en el _ y solo editaria lo que esta como zip, pero haz un backup por si acaso que no se yo si estará bien.

Si, los fichero son todos del tipo nombredeljuego.zip.txt :

Aladin.zip.txt
Alien3.zip.txt
Batman.zip.txt

El comando que has puesto no hace nada.
He visto que despues de la extension del archivo renombrado pones .* (al final de todo) y no sé para que sirve eso. He probado como tu has dicho y tambien quitando este trozo, pero ninguna opcion funciona ni hacen nada.

Estoy buscando por la red y solo encuentro formas de poner o quitar prefijos (al principio del nombre del archivo) pero quitar 4 letras del centro no veo la forma de hacerlo. Bueno, hay utilidades para hacerlo, pero preferirira crearme un bat ya que normalmente las roms están en zip y me serviria para todos los sistemas.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login 
igual no es lo mismo pero yo lo hice con notepad++
voy ha buscar  en tu caso buscaria  <name>
le daria a la opcion buscar en archivo actual y te sale una lista debajo la copias y creas otro archivo en blanco y lo pegas
le das otravez a buscar <name> y le das a reemplazar en blanco y te los elimina
 y te quedaria por ejemplo Aladdin</name>
vuelves a buscar y busca </name> y ahora le das a remplazar y le pones .zip.txt
y te quedara    Aladdin.zip.txt
y ya esta  no se si eso es lo que buscas.

yo lo he hecho con el ini de scummvm para hacer una lista de los game id
ya diras como te fue
EDITO
luego guarda el achivo como romlist.txt ,claro

Gracias pero creo que te hemos liado un poco, ahora mismo tengo cientos de archivos txt que me ha extraido el script que he puesto más arriba (y es lo que quiero), pero antes de la extension del archivo queremos quitar 4 letras que molestan, es decir:

Tengo:

 Alien3.zip.txt

Necesito:

Alien3.txt
« Última modificación: Miércoles , 06 de Noviembre de 2019, 09:39:03 por Jate »


Desconectado InsertMoreCoins

  • Administrador
  • Sobrehumano
  • *****
    • Mensajes: 6680
    • Popularidad: +304/-13
    • Sexo:Masculino
  • Looking For Pedestrians
    • Ver Perfil
Respuesta #13 en: Miércoles , 06 de Noviembre de 2019, 04:43:37
You are not allowed to view links. Register or Login no te funcionaba porque no había puesto bien toda la sentencia ya que me he liado con los puntos de las extensiones porque tus ficheros serían .zip.txt y no lo había contemplado bien antes al poner la sentencia.

Prueba ahora con esto (todo va en el mismo bat)

Código: You are not allowed to view links. Register or Login
ren *.zip.txt* *zip
ren *.zip *.txt

Se supone que ahora lo tendría que hacer bien

Ya me dices  sm(ok)
« Última modificación: Miércoles , 06 de Noviembre de 2019, 04:46:01 por InsertMoreCoins »
You are not allowed to view links. Register or Login


Desconectado Jate

  • Novato
  • *
    • Mensajes: 27
    • Popularidad: +3/-0
    • Ver Perfil
Respuesta #14 en: Miércoles , 06 de Noviembre de 2019, 05:07:20
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login no te funcionaba porque no había puesto bien toda la sentencia ya que me he liado con los puntos de las extensiones porque tus ficheros serían .zip.txt y no lo había contemplado bien antes al poner la sentencia.

Prueba ahora con esto (todo va en el mismo bat)

Código: You are not allowed to view links. Register or Login
ren *.zip.txt* *zip
ren *.zip *.txt

Se supone que ahora lo tendría que hacer bien

Ya me dices  sm(ok)

Ahora sí  sm(ok)

Muchas gracias