Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
|
84c7aa8e29 | |
|
2a92557bbc | |
|
b410403ea5 | |
|
5ea6489b41 | |
|
155f4b95b8 | |
|
4ae16782ca | |
|
5321325142 | |
|
4c191aa730 | |
|
e3f5470fce | |
|
13ebbc2939 | |
|
9cc67bbf1f | |
|
78f27b724e | |
|
b78fb6f900 |
25
CHANGELOG.md
25
CHANGELOG.md
|
@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.22.1] - 2025-06-27
|
||||
|
||||
### Fixed
|
||||
|
||||
- Included some changes that should be in the previous version
|
||||
|
||||
## [0.22.0] - 2025-06-26
|
||||
|
||||
### Changed
|
||||
|
||||
- Changed torrent client from ctorrent to aria2c
|
||||
- Updated ogCreateTorrent function replaced ctorrent with mktorrent
|
||||
|
||||
## [0.21.1] - 2025-06-26
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed syntax and other errors
|
||||
|
||||
## [0.21.0] - 2025-06-25
|
||||
|
||||
### Changed
|
||||
|
||||
- Prevent Configurar.py from messing with the browser
|
||||
|
||||
## [0.20.3] - 2025-06-25
|
||||
|
||||
### Fixed
|
||||
|
|
|
@ -47,9 +47,6 @@ prog = os.path.basename(__name__)
|
|||
#param = ''.join(sys.argv[2:]).replace(' ', '').replace('\t', '')
|
||||
param = sys.argv[2]
|
||||
|
||||
# Activa navegador para ver progreso
|
||||
coproc = subprocess.Popen (['/opt/opengnsys/bin/browser', '-qws', 'http://localhost/cgi-bin/httpd-log.sh'])
|
||||
|
||||
# Leer los dos bloques de parámetros, separados por '!'.
|
||||
tbprm = param.split ('!')
|
||||
pparam = tbprm[0] # General disk parameters
|
||||
|
@ -71,7 +68,6 @@ for item in tbprm:
|
|||
|
||||
# Error si no se define el parámetro de disco (dis).
|
||||
if dis is None:
|
||||
coproc.kill()
|
||||
sys.exit (ogGlobals.OG_ERR_FORMAT)
|
||||
|
||||
# Toma valores de distribución de particiones, separados por "%".
|
||||
|
@ -101,13 +97,12 @@ for item in tbprm:
|
|||
elif 'ope' == k: ope = int (v)
|
||||
|
||||
missing_params = []
|
||||
if par is None: missing_params.append ('par')
|
||||
if cpt is None: missing_params.append ('cpt')
|
||||
if sfi is None: missing_params.append ('sfi')
|
||||
if tam is None: missing_params.append ('tam')
|
||||
if par is None or 'None' == par: missing_params.append ('par')
|
||||
if cpt is None or 'None' == cpt: missing_params.append ('cpt')
|
||||
if sfi is None or 'None' == sfi: missing_params.append ('sfi')
|
||||
if tam is None or 'None' == tam: missing_params.append ('tam')
|
||||
if missing_params:
|
||||
print (f'partition data ({item}) missing required parameters ({' '.join (missing_params)})')
|
||||
coproc.kill()
|
||||
sys.exit (1)
|
||||
|
||||
# Componer datos de particionado.
|
||||
|
@ -153,7 +148,6 @@ if 'CACHE' in sparam:
|
|||
rc = SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGSCRIPTS}/initCache', tch])
|
||||
if not rc:
|
||||
SystemLib.ogRaiseError (['log', 'session'], ogGlobals.OG_ERR_CACHE, f'initCache failed')
|
||||
coproc.kill()
|
||||
sys.exit (1)
|
||||
|
||||
# Definir particionado.
|
||||
|
@ -161,7 +155,6 @@ SystemLib.ogEcho (['session', 'log'], None, f'[50] {ogGlobals.lang.MSG_HELP_ogCr
|
|||
SystemLib.ogEcho (['session', 'log'], None, f' ogCreatePartitions {dis} {' '.join (tbp)}')
|
||||
res = SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogCreatePartitions', str(dis)] + tbp)
|
||||
if not res:
|
||||
coproc.kill()
|
||||
SystemLib.ogRaiseError (['log', 'session'], ogGlobals.OG_ERR_GENERIC, f'ogCreatePartitions {dis} {' '.join (tbp)}')
|
||||
sys.exit (1)
|
||||
SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogUpdatePartitionTable'])
|
||||
|
@ -177,7 +170,6 @@ for p in range (1, maxp+1):
|
|||
retval = SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogFormatCache'])
|
||||
else:
|
||||
SystemLib.ogEcho (['session', 'log'], None, f' ogFormatFs {dis} {p} {tbf[p]}')
|
||||
coproc.kill()
|
||||
retval = SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogFormatFs', str(dis), str(p), tbf[p]])
|
||||
if not retval:
|
||||
SystemLib.ogRaiseError (['session', 'log'], ogGlobals.OG_ERR_GENERIC, f'ogFormatFs {dis} {p} {tbf[p]}')
|
||||
|
@ -190,5 +182,4 @@ SystemLib.ogEcho (['session', 'log'], None, f'{ogGlobals.lang.MSG_INTERFACE_END}
|
|||
# Retorno
|
||||
#___________________________________________________________________
|
||||
|
||||
coproc.kill()
|
||||
sys.exit (0)
|
||||
|
|
|
@ -671,7 +671,7 @@ def ogTorrentStart (disk=None, par=None, container=None, torrentfile=None, torre
|
|||
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTFOUND, f'device or torrentfile {dev_err} not found')
|
||||
return
|
||||
|
||||
if subprocess.run (['ctorrent', '-x', source]).returncode: ## if True, then ctorrent failed
|
||||
if subprocess.run (['aria2c', '-S', source]).returncode: ## if True, then aria2c failed
|
||||
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTFOUND, '')
|
||||
return None
|
||||
|
||||
|
@ -697,24 +697,36 @@ def ogTorrentStart (disk=None, par=None, container=None, torrentfile=None, torre
|
|||
|
||||
OPTION = None
|
||||
cwd = os.getcwd()
|
||||
# si No fichero .bf, y Si fichero destino imagen ya descargada y su chequeo fue comprobado en su descarga inicial.
|
||||
if not os.path.exists (f'{source}.bf') and os.path.exists (target):
|
||||
# si No fichero .aria2, y Si fichero destino imagen ya descargada y su chequeo fue comprobado en su descarga inicial.
|
||||
|
||||
if not os.path.exists (f'{target}.aria2') and os.path.exists (target):
|
||||
print ('imagen ya descargada')
|
||||
if 'seeder' != mode: return 'success' ## return any true value
|
||||
|
||||
print ('MODE seeder ctorrent')
|
||||
print ('MODE seeder aria2c')
|
||||
os.chdir (dirsource)
|
||||
subprocess.run (['timeout', '--signal', 'INT', time, 'ctorrent', '-f', source])
|
||||
aria2_cmd = [
|
||||
"aria2c",
|
||||
"--check-integrity=true",
|
||||
"--bt-seed-unverified=true",
|
||||
"--disable-ipv6",
|
||||
"--seed-ratio=0.0",
|
||||
f"--seed-time={time}",
|
||||
"--enable-dht=false",
|
||||
"--enable-peer-exchange=false",
|
||||
f"--dir={dirsource}",
|
||||
f"{source}"
|
||||
]
|
||||
subprocess.run (aria2_cmd)
|
||||
os.chdir (cwd)
|
||||
return 'success'
|
||||
|
||||
#Si no existe bf ni fichero destino descarga inicial.
|
||||
if not os.path.exists (f'{source}.bf') and not os.path.exists (target):
|
||||
#Si no existe bf ni fichero destino descarga inicial.
|
||||
if not os.path.exists (f'{target}.aria2') and not os.path.exists (target):
|
||||
print ('descarga inicial')
|
||||
OPTION = 'DOWNLOAD'
|
||||
|
||||
# Si fichero bf descarga anterior no completada -.
|
||||
if os.path.exists (f'{source}.bf') and os.path.exists (target):
|
||||
if os.path.exists (f'{target}.aria2') and os.path.exists (target):
|
||||
print ('Continuar con Descargar inicial no terminada.')
|
||||
OPTION = 'DOWNLOAD'
|
||||
|
||||
|
@ -723,25 +735,51 @@ def ogTorrentStart (disk=None, par=None, container=None, torrentfile=None, torre
|
|||
os.chdir (dirsource)
|
||||
if 'peer' == mode:
|
||||
print ('Donwloading Torrent as peer')
|
||||
# Creamos el fichero de resumen por defecto
|
||||
open (f'{source}.bf', 'w').close()
|
||||
# ctorrent controla otro fichero -b ${SOURCE}.bfog
|
||||
ctorrent_cmd = ['ctorrent', '-f', '-c', '-X', f'sleep {time}; kill -2 $(pidof ctorrent)', '-C', '100', source, '-s', target, '-b', f'{source}.bfog']
|
||||
SystemLib.ogEcho(["session","log"],"warning",f'Starting PeerTorrent download in PEER mode')
|
||||
aria2_cmd = [
|
||||
"aria2c",
|
||||
"--enable-dht=false",
|
||||
"--enable-peer-exchange=false",
|
||||
"--disable-ipv6" ,
|
||||
f"--seed-time={time}",
|
||||
f"--dir={dirsource}",
|
||||
f"{source}"
|
||||
]
|
||||
|
||||
elif 'leecher' == mode:
|
||||
print ('Donwloading Torrent as leecher')
|
||||
ctorrent_cmd = ['ctorrent', source, '-X', 'sleep 30; kill -2 $(pidof ctorrent)', '-C', '100', '-U', '0']
|
||||
SystemLib.ogEcho(["session","log"],"warning",f'Starting PeerTorrent download in LEECHER mode')
|
||||
aria2_cmd = [
|
||||
"aria2c",
|
||||
"--enable-dht=false",
|
||||
"--enable-peer-exchange=false",
|
||||
"--disable-ipv6" ,
|
||||
"--seed-time=0",
|
||||
f"--dir={dirsource}",
|
||||
f"{source}"
|
||||
]
|
||||
|
||||
elif 'seeder' == mode:
|
||||
print ('MODE seeder ctorrent')
|
||||
# Creamos el fichero de resumen por defecto
|
||||
open (f'{source}.bf', 'w').close()
|
||||
# ctorrent controla otro fichero -b ${SOURCE}.bfog
|
||||
ctorrent_cmd = ['ctorrent', '-f', '-c', '-X', f'sleep {time}; kill -2 $(pidof ctorrent)', '-C', '100', source, '-s', target, '-b', f'{source}.bfog']
|
||||
print ('MODE seeder aria2c')
|
||||
SystemLib.ogEcho(["session","log"],"warning",f'Starting PeerTorrent download in SEEDER mode')
|
||||
aria2_cmd = [
|
||||
"aria2c",
|
||||
"--check-integrity=true",
|
||||
"--bt-seed-unverified=true",
|
||||
"--disable-ipv6" ,
|
||||
"--seed-ratio=0.0",
|
||||
f"--seed-time={time}",
|
||||
"--enable-dht=false",
|
||||
"--enable-peer-exchange=false",
|
||||
f"--dir={dirsource}", f"{source}"
|
||||
]
|
||||
|
||||
else:
|
||||
print ('this should not happen')
|
||||
return None
|
||||
|
||||
print (f'executing ctorrent: {' '.join(ctorrent_cmd)}')
|
||||
subprocess.run (ctorrent_cmd)
|
||||
SystemLib.ogEcho(["session","log"],"warning",f'Launching torrent command: {aria2_cmd}')
|
||||
subprocess.run (aria2_cmd)
|
||||
os.chdir (cwd)
|
||||
|
||||
|
||||
|
@ -811,11 +849,13 @@ def ogCreateTorrent (disk=None, par=None, container=None, file=None, ip_bttrack=
|
|||
|
||||
cwd = os.getcwd()
|
||||
os.chdir (os.path.dirname (source))
|
||||
print (f'ctorrent -t {os.path.basename (source)} -u http://{ip_bttrack}:6969/announce -s {source}.torrent')
|
||||
subprocess.run (['ctorrent', '-t', os.path.basename (source), '-u', f'http://{ip_bttrack}:6969/announce', '-s', f'{source}.torrent'])
|
||||
print (f'mktorrent -a http://{ip_bttrack}:6969/announce -o {source}.torrent {source}')
|
||||
subprocess.run (['mktorrent' , '-a', f'http://{ip_bttrack}:6969/announce', '-o', f'{source}.torrent', source])
|
||||
os.chdir (cwd)
|
||||
|
||||
|
||||
|
||||
|
||||
#/**
|
||||
# ogUpdateCacheIsNecesary [ str_repo ] Relative_path_file_OGIMG_with_/
|
||||
#@brief Comprueba que el fichero que se desea almacenar en la cache del cliente, no esta.
|
||||
|
|
|
@ -140,7 +140,7 @@ def main (disk, par, repo, imgname):
|
|||
# Evaluar variable de engine.cfg para reducir el sistema de archivos en la creacion
|
||||
if ogGlobals.IMGREDUCE:
|
||||
SystemLib.ogEcho (['log', 'session'], None, f'[30] {ogGlobals.lang.MSG_HELP_ogReduceFs}')
|
||||
SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogReduceFs}', disk, par])
|
||||
SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogReduceFs', disk, par])
|
||||
newsizefs = FileSystemLib.ogGetFsSize (disk, par)
|
||||
timeaux = time.time() - time1
|
||||
SystemLib.ogEcho (['log', 'session'], None, f' {ogGlobals.lang.MSG_SCRIPTS_TIME_PARTIAL} ( {newsizefs} KB ) : {int (timeaux/60)}m {int (timeaux%60)}s')
|
||||
|
@ -157,7 +157,7 @@ def main (disk, par, repo, imgname):
|
|||
with open (ogGlobals.OGLOGCOMMAND, 'w') as fd: fd.write ('')
|
||||
time2 = time.time()
|
||||
SystemLib.ogEcho (['log', 'session'], None, f'[40] {ogGlobals.lang.MSG_HELP_ogCreateImage} : ogCreateImage {disk} {par} {repo} {imgname} {ogGlobals.IMGPROG} {ogGlobals.IMGCOMP}')
|
||||
if not SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogCreateImage}', disk, par, repo, f'/{imgname}', ogGlobals.IMGPROG, ogGlobals.IMGCOMP]):
|
||||
if not SystemLib.ogExecAndLog ('command', [f'{ogGlobals.OGPYFUNCS}/ogCreateImage', disk, par, repo, f'/{imgname}', ogGlobals.IMGPROG, ogGlobals.IMGCOMP]):
|
||||
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_IMAGE, 'ogCreateImage')
|
||||
sys.exit (1)
|
||||
resumecreateimage = subprocess.run (['grep', 'Total Time:', ogGlobals.OGLOGCOMMAND], capture_output=True, text=True).stdout
|
||||
|
|
|
@ -156,9 +156,10 @@ CacheLib.ogMountCache()
|
|||
imgdir = FileLib.ogGetParentPath ('CACHE', f'/{path}')
|
||||
if not imgdir:
|
||||
SystemLib.ogEcho (['log', 'session'], None, f'[5] {ogGlobals.lang.MSG_HELP_ogMakeDir} "{path} {os.path.dirname (path)}".')
|
||||
FileLib.ogMakeDir ('CACHE', os.path.dirname (f'/{path}'))
|
||||
imgdir = ogGetParentPath ('CACHE', f'/{path}')
|
||||
FileLib.ogMakeDir (container='CACHE', file=os.path.dirname (f'/{path}'))
|
||||
imgdir = FileLib.ogGetParentPath ('CACHE', f'/{path}')
|
||||
if not imgdir:
|
||||
SystemLib.ogRaiseError ('session', ogGlobals.OG_ERR_IMAGE, 'no directory for images')
|
||||
sys.exit (1)
|
||||
|
||||
t0 = time.time()
|
||||
|
|
Loading…
Reference in New Issue