DC+

Pavel Janoušek janousek na fonet.cz
Pátek Říjen 1 11:22:36 CEST 2004


> -----Original Message-----
> From: Jan Klugl [mailto:jkluglNOSPAM na pikebo.cz] 
> - jednak ti neustale jezdi po obrazovce mega informaci a 

	Vypni si logovani...:-)

> druhak hledani
> a nasledny pokus o transfer jsou trochu mene intuitivni ;))) 

	Ted ti nenapisu primo prikazy, ale co je sloziteho na tomto:

a) zalozim novy segment download (ziskam ID) nebo atachnu starsi (opet ziskam ID)
b) dam "segment search add" s tim co chci a pripad ziskane ID
c) sleduju, jak se to pekne hromadi na disku (zpravidla rychlost omezena moznostmi disku:->)

	Dokonce jsem si napsal vlastniho parsera, ktery velmi hrube prida dalsi zdroj do segment search - to z toho duvodu, abych mohl pouzit i nalezene zdroje z MoGLO apod. - staci to prekopirovat rovnou do dctc konzoly..

	Nedelam si zadne naroky, v necem rozumnejsim (perl, awk apod. - cimz nevladnu a ucit se nebudu) to bude kratsi, ale treba se bude hodit (neni to ocesane, silne hrube, ale funkcni - kdyz ne, mas coredump a vis, ze jsi hnup a neumis to pouzit:-]) - pozor ale na MoGLO apod. - kazda verze mela trochu jiny vystup...

#include <stdio.h>

char *
rsrch(char *buf, char *poz, char znak)
{
	while(poz >= buf)
		if(*poz == znak)
			return poz;
		else
			poz--;
	return NULL;
}

char *
srch(char *buf, char *poz, char znak)
{
	while(*poz != '\0')
		if(*poz == znak)
			return poz;
		else
			poz++;
	return NULL;
}

#define POZICE( b, p )	(int) ( p - b )
#define PTR( b, p )	(char *) (&b[p])

void
main(int argc, char **argv)
{
	char buf [1024], orig [1024];

	fgets(buf, sizeof(buf), stdin);
	if (buf[strlen(buf - 2)] == '\n')
		buf[strlen(buf - 2)] = '\0';
	strcpy(orig, buf);
	
	char *vel = srch(buf, buf, '\xA0');
	if(!vel)
	{
		printf("Error on input 1!\n");
		return;
	}
	char *poz = rsrch(buf, vel, ' ');
	if(!poz)
	{
		printf("Error on input 2!\n");
		return;
	}
	buf[POZICE(buf,poz)] = '\0';
	
	char name[1024];
	strcpy(name, buf);
//	printf("Jmeno: %s\n", name);
	buf[POZICE(buf,poz)] = orig[POZICE(buf,poz)];
	char *b = srch(buf, poz + 1, ' ') + 1;
	char *e = srch(buf, b, '/');
	poz = rsrch(buf, e, ' ');
	buf[POZICE(buf, poz)] = '\0';
	
	char dir[1024];
	strcpy(dir, b);
//	printf("Adresar: %s\n", dir);
	buf[POZICE(buf, poz)] = orig[POZICE(buf, poz)];
	b = srch(buf, e, ' ') + 1;
	e = srch(buf, b, ' ');
	buf[POZICE(buf, e)] = '\0';
	
	char nick [1024];
	strcpy(nick, b);
//	printf("Nick: %s\n", nick);
	buf[POZICE(buf, e)] = orig[POZICE(buf, e)];
	
	char size [128];
	long _size = atoi((e = rsrch(buf, &buf[strlen(buf) - 2], ' ')) + 1);
	sprintf(size, "%ld", _size);
//	printf("Velikost: %s\n", size);
	buf[POZICE(buf, e)] = '\0';

	char hub [1024];
	strcpy(hub, rsrch(buf, e - 1, ' ') + 1);
//	printf("Hub: %s\n", hub);

	char par[1024] = "";
	if(argc > 1)
		strcpy(par, argv[1]);
	printf("/GOTO %s\n", hub);
	printf("/DL *%s**%s%s*\n", nick, dir, name);
	printf("/GDLADD %s|%s|%s%s|%s\n", par, nick, dir, name, size);
} 

-------------------------------------------------------------------
Ing. Pavel Janousek (PaJaSoft)             FoNet, spol. s r. o.
Technicka podpora, Intranet/Internet     Sokolova 67, 619 00 Brno
E-mail: mailto:Janousek na FoNet.Cz         Tel.: +420  5  4324 4749
WWW:    http://WWW.FoNet.Cz/           E-mail: mailto:Info na FoNet.Cz
-------------------------------------------------------------------


Další informace o konferenci Linux