Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Program za objavljivanje poruka na EMZ

[es] :: Art of Programming :: Program za objavljivanje poruka na EMZ

Strane: 1 2 3

[ Pregleda: 5892 | Odgovora: 52 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ08.03.2026. u 18:59 - pre 4 meseca
Na primer, tvoj saradnik Zurg je 16.04.2020. objavio poruku https://www.elitemadzone.org/p3944798
u temi "Koronanomalije i samoizolacija".
U poruci je kratko komentarisao tekst napisan u Novosti-ma.

Poruke nema jer je cela tema uklonjena.
Pretpostavimo da vaša aplikacija primeti da poruke sa brojem 3944798 nema i pokušava da je obnovi.
Ali server odbija upis poruke na temi koja ne postoji.

Gde će aplikacija da objavi tu poruku?

 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ08.03.2026. u 20:08 - pre 4 meseca
Neće da je objavi jer ne postoji tema. Program bi detektovao da nema teme, logovao neuspeh i nastavio sa sledećom porukom. U sledećem prolazu ponovo bi pokušao, jer teme na ES nasumično nestaju i pojavljuju se. Nisam želeo da poruka bude automatski objavljena u okviru neke druge teme jer to ne bi bilo u skladu sa pravilnikom: tačka 4. Pišite kvalitetno i ozbiljno i tačka 9. Izaberite relevantan forum za svoju temu. Ukoliko korisnik programa želi može da nakon inspekcije loga ručno dodeli poruku nekoj drugoj temi.
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ09.03.2026. u 04:49 - pre 4 meseca
Dosta tema na forumu nestaje bez traga.

Ako si na temi napisao po 10-tak poruku na 10-tak obrisanih tema to onda povlači na 100-ne ili 1000-de provera na svakih 10 minuta jer i broj obrisanih poruka raste kao što raste i broj obrisanih tema a raste i broj korisnika koji obnavljaju poruke.

Potencijalno broj reqest-a za proveru postojanja poruke / obnovu poruke ide u milione.

Praktično računar koji korsiti tu aplikaciju bi se "usijao" od rada a server ES-a bi non-stop opsluživao request-e koje svaki put odbija.

Da li ste u fazi testiranja programa dolazili u slične situacije?

 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ09.03.2026. u 08:35 - pre 4 meseca
Zauzeće procesora klijentskog računara ne zavisi od broja poruka. Poruke sa jednog naloga se obrađuju sekvencijalno sa pauzama od 31 s između slanja. Pauze postoje da ne bi došlo do "flodovanja" servera.

Opterećenje računara zavisi od broja naloga sa kojih šalješ poruke.

main.go:
Code:

...
    for _, user := range activeUsersMap {
        //svaki korisnik se obradjuje u posebnoj gorutini
        go func() {
            if len(user.posts) > 0 {
                user.run()
            }
            wg.Done()
        }()
    }
...


U isečku koda iznad možeš da vidiš ključnu reč go ispred poziva anonimne funkcije. Za svaki korisnički nalog kreira se posebna gorutina, tako da se obrada poruka različitih korisnika odvija konkurentno. Gorutine su lake niti kojima upravlja go runtime. Runtime može da mapira veliki broj gorutina na mali broj niti operativnog sistema.

Ne verujem da možeš da napišeš toliko poruka i otvoriš toliko naloga da bi usijao svoj računar ili ES server.
Koliko mogu da primetim ES server koristi više nivoa keširanja, tako da mislim da do DDOS-ovanja servera neće doći, osim ako bi se neko baš potrudio da to uradi.
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ09.03.2026. u 10:48 - pre 4 meseca
Imao sam na umu ono šta si napisao u uvodu da se aplikacije pokreće na svakih 10 minuta.

Kako bilo, sad vidim da u funkciji writePost sa FLOOD_TIMEOUT regulišeš vremenski okvir izmedju objavljivanja poruka.

To spasava forum od gušenja ali smanjuje efikasnost aplikacije.

Bez obzira što ti razmisljas o malom broju poruka ja ne vidim smisla godinama razvijati aplikaciju da bih povremeno obnovio poruku. Mali broj poruke se može obnoviti iz brauzera bez ikakvih posebnih alata.

Razvijanje opsežne aplikacije ima smisla samo ako se obnavlja veliki broj poruka.

Već sam naveo niz razloga koji vode neograničenom rasta broja obnavljanja poruka.

Aplikacija zapravo treba da poseduje mehanizme da obmanu ES server tako da slanje zahteva za obnovu server prihvati a ne da odbaci kao flodovanje.

Zar ne?

Citat:
Zauzeće procesora klijentskog računara ne zavisi od broja poruka.

To u slučaju ako jedna osoba koristi samo jedan nalog.
Ipak mislim da bi aplikacija više imala smisla ako jedna ista osoba istovremeno koristi više naloga.

Na primer, Robert je koristio više naloga istovremeno i to je utvrdila Administracija foruma. Njemu bi takva aplikacija dobrodošla.

Sumnjam da je Robert za svaki nalog koristio drugi računar pa bi zauzeće klijentskog procesora zavisilo i od broja naloga i od broja poruka.

 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ09.03.2026. u 12:32 - pre 4 meseca
NIsi pažljivo čitao moju prethodnu poruku. Program može da pošalje istovremeno (tačnije konkurentno) više poruka, samo ne sa istog naloga. Takođe, može da pošalje veliki broj poruka sa jednog naloga, ali ne odjednom. Nisam testirao, ali trebalo bi da prosečan moderni računar može da podrži više stotina ili čak hiljada naloga, što je mnogo više nego što bi prosečan (normalan) čovek bio spreman da otvori. Meni se čini da tebi treba program koji bi zagušio ES server, a ovaj program nije napravljen sa tim ciljem. Čemu objavljivanje poruka ako zagušiš server tako da ih niko ne vidi? Aplikacija nije razvijana godinama, nego nekoliko dana, radi zabave i testiranja go jezika. Posebnu zahvalnost dugujem moderatoru koji mi je pomogao prilikom testiranja programa.
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ09.03.2026. u 17:30 - pre 4 meseca
Da sam na tvom mestu i da se tako dobro razumem u programiranje ja bih se na 10 strana raspisao hvaleći aplikaciju i objašnjavajući kako radi.

No, dobro, ako aplikacija može da šalje poruke sa više naloga u kratkim vremenskim intervalima onda je to u redu. Dok pošalješ po 1 poruku sa 100 naloga onda možeš krenuti opet kroz listu naloga i slati drugu poruku sa tih naloga i da pri tome ne bi došlo do "flodovanja" servera

Citat:
Meni se čini da tebi treba program koji bi zagušio ES server

Taman posla. Pa što bih onda pisao poruke ako hoću da ugušim ES? Već sam napisao da sam ja hvalisavac a za to mi forum upravo treba.

Ako hoću da srušim neki forum jednostavnije mi je da platim nekog Indijca da za 30 dolara angažuje familiju i dok kažeš Piksla! forum bi bio izbombardovan sa milion poruika.

Nego, da te pitam još nešto: da li svoje poruke šalješ preko te aplikacije ili kroz brauzer?

 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ09.03.2026. u 19:34 - pre 4 meseca
Tek smo na 2. stranici, a mislim da smo skoro sve pokrili. Hvala ti na pomoći. Bez tebe ne bih ovako dobro predstavio program. Ako se setiš još nečega, vrlo rado ću odgovoriti.

Nisam odavno slao poruke kroz program, ali evo sada da bih testirao da li još uvek radi poslao sam poruku: https://www.elitemadzone.org/t510702-17#4108411 i radi.
 
Odgovor na temu

MajorFatal
Milija Jakic
opravljam oluke, 1337LAB
Bg

Član broj: 36595
Poruke: 1579
*.dynamic.isp.telekom.rs.



+675 Profil

icon Re: Program za objavljivanje poruka na EMZ09.03.2026. u 21:52 - pre 4 meseca
Skraćeno rečeno napravio si program za spamovanje foruma? :) Užas.
Nemoj da pricas?
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ10.03.2026. u 00:18 - pre 4 meseca
Naravno da imam još pitanja. Zapravo, tek sam počeo.

Na ovoj temi ti je IP adresa
2a0b:f4c2:1:.*
2a0d:bbc7::f816:3eff:fe77.*
2a12:a800:2:1:91:206:169.*
*.dfri.se. via ipv6
2a0b:f4c2:1:.*

Na strani 1 ove teme
2a0b:f4c2:1:.*
2a0b:f4c2:2:.*
2a0b:f4c2:.*
2a03:e600:100:.*
2a12:a800:9:1:193:26:115.*
2a03:4000:17:a15:d4db:fbff:f..
*.brandonkuschel.com. via ipv6
2a0b:f4c2:.*
2a12:a800:11:1:192:159:99.*
2a0d:bbc7::f816:3eff:fec7.*


Na temi gde si aplikacijom poslao post ti je IP adresa *.myersact.com

Odakle ti sve te IP adrese?

Da li si upotrebio proxy da bi poslao poruku putem aplikacije?
Ako jesi da li to znači da već koristiš program sa izmenama o kojima si pisao na prethodnoj strani: napraviti malu izmenu u izvornom kodu ?

 
Odgovor na temu

ademare

Član broj: 151475
Poruke: 8748



+1875 Profil

icon Re: Program za objavljivanje poruka na EMZ10.03.2026. u 01:40 - pre 4 meseca
Ove adrese heksadecimalne su vp6 adrese.

Standardne vp4 imaju standardne decimalne brojeve.

Kako ih ima toliko ? Adrese su najverovatnije "Torovane" .

Drugi segment je oznaka ISP (Internet provajder) u ovoj prvoj f4c2. Tor tako seta i izmenja vise adresa da bi se otezalo pracenje.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12905



+4865 Profil

icon Re: Program za objavljivanje poruka na EMZ10.03.2026. u 02:22 - pre 4 meseca
vp? :)
 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ10.03.2026. u 08:49 - pre 4 meseca
Zbog prirode svog posla često putujem, pa otuda različite IP adrese. Bavim se proizvodnjom i prodajom sapuna. Dešava mi se da se probudim na nepoznatom mestu sa modricama po licu i telu... Raspričah se o sebi i rizikujem da prekršim prvo i drugo pravila Kluba...

Većina IP adresa je iz Tor mreže, jer koristim Tor veb pregledač. Adresa *.myersact.com je javni http proksi, a uz malu modifikaciju program može da šalje poruke i preko Tora. Potrebno je izmeniti funkciju getTransport na sledeći način:

Code:

func getTransport(proxyEnabled bool) http.RoundTripper {
    transport := http.Transport{}
    if proxyEnabled {
        dialer, _ := proxy.SOCKS5("tcp", "127.0.0.1:9050", nil, proxy.Direct)
        transport.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) {
            return dialer.Dial(network, addr)
        }
    }

    return &CustomTransport{
        Base: &transport,
    }
}


Potrebno je i u import odeljak dodati odgovarajuće biblioteke, kao što su "golang.org/x/net/proxy" i "net".

U funkciji koja kreira novi http klijent, može se povećati Timeout jer je Tor spor. Ja sam stavio 60 sekundi.

Code:

func newClient() *http.Client {
    jar, _ := cookiejar.New(nil)
    proxy := true
    parsedBaseUrl, err := url.Parse(BASE_URL)
    if err != nil {
        panic(err)
    }
    return &http.Client{
        Timeout:   time.Second * 60,
        Jar:       jar,
        Transport: getTransport(proxy),
        CheckRedirect: func(req *http.Request, via []*http.Request) error {
            if req.URL.Host != parsedBaseUrl.Host {
                return http.ErrUseLastResponse
            }
            return nil
        },
    }
}


Testirao sam objavljivanje preko Tora: https://www.elitemadzone.org/t492806-4#4108433
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ11.03.2026. u 22:07 - pre 4 meseca
Jesi imao problema sa CORS?
 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ12.03.2026. u 08:21 - pre 4 meseca
Naravno da ne. CORS je mehanizam koji primenjuju veb brauzeri kako bi zaštitili korisnika od učitavanja potencijalno opasnih resursa sa drugih domena. S obziromm da se ovde ne koristi brauzer, ne izvršava se JS, ne učitavaju resursi, a http.Client i nema ugrađene SOP i CORS, pitanje nije relevantno. Kada smo već kod resursa da dopunim odgovor na tvoje ranije pitanje - program mnogo manje opterećuje server pri učitavanju stranice nego brazuer, jer program učita samo html i ne obraća pažnju na slike, stilove, skripte, fontove... Otvaranje stranice u brauzeru pokreće dvadesetak zahteva, dok program pošalje jedan ili dva.

Da nisi možda mislio na CSRF, a napisao CORS? Ako si mislio na to, CSRF nije nikakav problem. Očekivano je da postoji i lako se izvlači iz stranice.

Code:

    if tokenNode := htmlquery.FindOne(doc, "//input[@name='es_token']/@value"); tokenNode != nil {
        token = htmlquery.InnerText(tokenNode)
    }


Program sam pisao pre skoro godinu dana. Ako se dobro sećam jedini problem sam imao dok nisam provalio da ES u kukijima koristi zagrade [ i ]. Ove zagrade po standardu nisu dozvoljene, a http.Client se striktno pridržava standarda i jednostavno ignoriše takve kukije. Rešio sam to funkcijom cookieHack, gde ručno parsiram kukije i dodajem u teglu one koji nedostaju.

Kod prikazan u poruci iznad, u vezi sa objavljivanjem kroz Tor mrežu, ima nedostatak. Tor ponekad, ničim izazvan, vrati grešku. Problem sam rešio tako što sam napravio izvedenu verziju Klijenta i overrajdovao funkciju Do (terminologija je iz OO jezika, ali mislim da je primenljiva u ovom slučaju).

Nova verzija ponavlja zahtev više puta, dok ne uspe ili dostigne broj od 5 pokušaja.

Code:

type Klijent struct {
    http.Client
}

func (k *Klijent) Do(req *http.Request) (*http.Response, error) {
    var err error
    var resp *http.Response
    retry := 5
    for i := range retry {
        if req.GetBody != nil {
            req.Body, _ = req.GetBody()
        }
        resp, err = k.Client.Do(req)
        if err != nil {
            log.Println("Do pokušaj ", i, err.Error())
            time.Sleep(time.Duration(i) * time.Second)
            continue
        }
        if resp.StatusCode >= 500 {
            log.Println("Do pokušaj", i, "Server je vratio status", resp.StatusCode)
            if i < retry-1 {
                resp.Body.Close()
            }
            continue
        }
        if i > 0 {
            log.Println("OK", req.URL.String())
        }
        return resp, err
    }
    return resp, err
}


Izmenio sam i funkciju getTransport, kako bih Toru dao više vremena.

Code:

func getTransport(proxyEnabled bool) http.RoundTripper {
    transport := http.Transport{
        DisableKeepAlives:     false,
        TLSHandshakeTimeout:   20 * time.Second,
        ResponseHeaderTimeout: 30 * time.Second,
        IdleConnTimeout:       90 * time.Second,
    }
    if proxyEnabled {
        dialer := &net.Dialer{
            Timeout:   30 * time.Second,
            KeepAlive: 30 * time.Second,
        }
        torDialer, _ := proxy.SOCKS5("tcp", "127.0.0.1:9050", nil, dialer)
        transport.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) {
            return torDialer.Dial(network, addr)
        }
    }

    return &CustomTransport{
        Base: &transport,
    }
}


Osim navedenih promena neophodno je promeniti potpise funkcija koje kao argument uzimaju http.Client.

Sve poruke na EMZ sada šaljem programom kroz Tor. Jedna od prednost korišćenja programa je i što u slučaju da poruke budu izbrisane, čak i ako ih nikada ne budem obnovio, ostaje mi arhiva kvazi-duhovitih poruka.



[Ovu poruku je menjao pover dana 12.03.2026. u 09:31 GMT+1]

[Ovu poruku je menjao pover dana 12.03.2026. u 09:36 GMT+1]

[Ovu poruku je menjao pover dana 12.03.2026. u 11:47 GMT+1]
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ12.03.2026. u 15:09 - pre 4 meseca
CORS mehanizam može da aktivira server i nije potrebno html renderisanje.
Da bi server aktivirao CORS mehanizam dovoljno je da sa nedozvoljenog domena klijent pokuša da pristupi podacima na serveru.

Evo, na primer, pokušavam da učitam tvoju poruku na dva načina, sa jednokomponentnom adresom i sa trokomponentnom adresom.
Code:
package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    // Jednokomponentni URL (samo postId)
    // url := "https://www.elitesecurity.org/p4108525"
    // Trokomponentni URL (temaId-pageId # postId)
    url := "https://www.elitesecurity.org/t511444-1#4108525"

    response, err := http.Get(url)
    if err != nil {
        log.Fatalf("Greška prilikom slanja zahteva: %v", err)
    }
    defer response.Body.Close()

    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        log.Fatalf("Greška prilikom čitanja tela odgovora: %v", err)
    }

    fmt.Printf("Status kod: %d\n", response.StatusCode)
    fmt.Printf("Odgovor: %s\n", body)
}

Za jednokomponentnu adresu znam da se sa XMLHTTP kroz brauzer aktivira CORS mehanizam.

U navedenom GO lang primeru, bez obzira da li serveru pristupim sa jednokomponentnom URL ili sa trokomponentno URL, u oba slučaja dobijam poruku:
Citat:
Greška prilikom slanja zahteva: Get "https://www.elitesecurity.org/..."


Ima li to veze sa CORS ili je nešto drugo?

 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ12.03.2026. u 17:15 - pre 4 meseca
Server šalje brauzeru hedere u kojima je definisano da li je dozvoljeno učitati spoljni resurs, a na brauzeru je da ograničenja sprovede u delo. MDN

Tvoj program funkcioniše! CORS u tvom slučaju ne igra nikakvu ulogu. Ne znam zašto dobijaš grešku. Problem može da bude u vezi sa operativnim sistemom koji koristiš i mrežnim podešavanjima.

Što se veb servera tiče tvoje "jednokomponente i trokomponentne" adrese su skoro iste. Deo iza heš taga uopšte ne stiže do servera i koristi ga brauzer kako bi skrolovao stranicu do određenog elementa. Deo iza minusa parsira rewrite endžin veb servera ili php skript, ali u svakom slučaju ne utiče na uspeh učitavanja stranice. ES vraća praznu stranicu ukoliko iza minusa upišeš broj veći od ukupnog broja stranice, tako da ni to ne bi dovelo do greške.
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ12.03.2026. u 22:52 - pre 4 meseca
Reinstalirao sam GO. Sad radi kako treba.

Generalno izgleda brži pristup. Mogao bih da koristim GO za čitanje poruka na forumu i eliminišem beskorisne stvari. Eskiviram css-ove, google skripte, fontove, itd.

A slike, na primer, bih mogao da učitavam iz brauzera klikom na ikonu.
 
Odgovor na temu

pover

Član broj: 351816
Poruke: 28



+1 Profil

icon Re: Program za objavljivanje poruka na EMZ13.03.2026. u 09:33 - pre 4 meseca
Za čitanje bi ipak bila bolja GUI aplikacija. Ovo može da se napravi u bilo kom programskom jeziku. Ako bi koristio go imaš zanimljiv frejmvork, Wails, koji ti omogućava da koristiš veb tehnologije za grafički interfejs. Nešto slično kao elektron. U kombinaciji sa bazom nebo je granica šta možeš da napraviš od foruma :)
 
Odgovor na temu

svojnasvome

Član broj: 351841
Poruke: 39



+10 Profil

icon Re: Program za objavljivanje poruka na EMZ13.03.2026. u 18:37 - pre 4 meseca
Postoji više razloga zašto Go nije interesantan za kontinuirani razvoj aplikacija.
Naravno, ako ti klijent traži Go aplikaciju onda radiš Go aplikaciju.
U suprotnom, bar ja do danas nisam našao razlog da razvijam Go aplikacije dalje od epizodnih skriptova kao što je ovde slučaj.

Go ima arhaičnu sintaksu koja podseća na C ali nije C sintaksa.
Ako je u vreme računara sa oskudnom memorijom imalo smisla koristiti specijalne karaktere za oznaku pointera, indirektno adresiranje itd. danas ne vidim razloga za tako nešto.
Nikakve koristi osim 'mističnog' programiranja ponekad teško razumljivog.

Na primer
Code:
 for i, x := range v1 {
        y := v2[i]
        s += x * y
    }

Par znakova := se koristi za deklaraciju i inicijalizaciju Go lang promenljivih.
U navedenom primery y se i puta deklariše!

Poseban autofaul Go-a je JSON.

Sada kad je JSON najprihvatljiviji standard za razmenu podataka Go se zagrcne na parsiranju elementarnih JSON struktura koje JavaScript obradi dok kazeš 'SAD!'.
Code:

/*
var o = JSON.parse('{"A":"b","C":[{"D":"e","false":1,"g":[{"1":2,"3":"H","4":true},{"I":"j","k":"L","M":"n"}]}],"D":1769508300000}');
*/
// Ekvivalentno sa:

var o = {
    "A":"b",
    "C":[
        {
            "D":"e",
            "false":1,
            "g":[
                {
                    "1":2,
                    "3":"H",
                    "4":true
                },
                {
                    "I":"j",
                    "k":"L",
                    "M":"n"
                }
            ]
        }
    ],
    "D":1769508300000
};
alert(o.C[0].g[1]["k"]);// L

A JavaScript radi i ovo:
Code:

var t={
    159:"FF1",
    170:"DC"
};
var x = 170;
alert(t[x]);// DC


Što se tiče Wails, paa, osim "amazing features" šta tu još ima?

 
Odgovor na temu

[es] :: Art of Programming :: Program za objavljivanje poruka na EMZ

Strane: 1 2 3

[ Pregleda: 5892 | Odgovora: 52 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.