PHz superblociņš - Kā nobloķēt nevēlamus komentētājus Sviesta Cibā [bloks|kalendārs|spamparāde|autors]
PHz

[ autors | sc userinfo ]
[ kalendārs | MEGA!!! ]

Zibenstakas
[Paskat tik:| SpampamparādeKārtībai jābūt!OKomentiņiES ]

Kā nobloķēt nevēlamus komentētājus Sviesta Cibā [2017-03-02|01:25]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tagi|, , ]

jeb «Tavas domas man neinteresē, tavs izteiksmes veids - pretīgs» ©[info]helvetica

Pēdējā laikā Cibas drauglistē aktivizējušies nekvalitatīvi komentētāji, kurus man apnika lasīt, tāpēc izpētīju, kā visvienkāršāk no viņu komentāriem atbrīvoties. Izskatās, ka visvieglāk ir tos rādīt kā kolapsētos komentārus (kad rāda tikai vārdu, bet nerāda ne tekstu, ne lietotājbildi), jo to Ciba jau prot un nekas no jauna nav jādizainē. Uztaisīju arī pamācību vienkāršam cibiņam, kā to pielietot:

1) pārbaudi http://klab.lv/customize/ , vai tava ciba izmanto S2, ja nē, tad nekas nesanāks:

2) turpat apskaties, kurš izkārtojums tev ir, vai arī izvēlies kādu glītu, ja tikko esi apgreidojies uz S2. Drošībai pieraksti arī krāsu tēmu, lai var pēc tam atlikt atpakaļ, ja nu vajag:

Achtung! ja tev ir kāds no šiem izkārtojumiem, kuri pārdefinē metodi EntryPage::print_comments, tad par rezultātiem neatbildu, iespējams, ka komentāru sadaļa izskatīsies pēc kakas:
3 column, A Novel Conundrum, A Sturdy Gesture, Dear Diary..., Flexible Squares, Opal (Libra OSWD), Quite Lickable, Smooth Sailing

3) ej uz http://klab.lv/customize/advanced/layers.bml , zem «Create layout-specific layer» izvēlies Type: Theme un Layout: savu 2. punktā iegaumēto izkārtojumu, spied «Create»

4) augstāk parādīsies jauns bezvārda slānis, kuram jāspiež «Edit»,

jāiekopē esošajam tekstam pa virsu zemākminētais koda gabaliņš, jāpiekoriģē slikto komentētāju saraksts (ja gribi nobloķēt anonīmos, tad jāieraksta tas, kas atbilstoši tavas cibas valodai rādās pie viņu komentāriem, parasti vai nu «(Anonīms)» vai «(Anonymous)») un tad «Save&Compile», pārliecinoties, ka apakšā parādās «Compiled with no errors». Ja ir kļūdas, nu tad jāsāk programmēt :)
(ar treknrakstu atzīmēju to, ko es pats pieliku pie pamatslāņa defaultās funkcijas, nu tas vairāk priekš entuziastiem)
layerinfo "type" = "theme";
layerinfo "name" = "nekvalitatīvo komentāru aizvācējs";

function EntryPage::print_comments (Comment[] cs) {
    if (size $cs == 0) { return; }

    var string{} bad_people={
        "(Anonīms)" => "lohs",
        "(Anonymous)" => "lohs",
        "aivars_666" => "apstākļu upuris?"
    };

    var string{} bad_ips={
        "127.0.0.1" => "pats lohs"
    };

    foreach var Comment c ($cs) {
        var int indent = ($c.depth - 1) * 25;
        var string poster = defined $c.poster ? $c.poster.username : $*text_poster_anonymous;
        var string ip = $c.metadata{"poster_ip"};
        "<div id='$c.dom_id' style='margin-left: ${indent}px; margin-top: 5px'>\n";
        if (($c.full) and ($bad_people{$poster} == "") and ($bad_ips{$ip} == "")) {
            $this->print_comment($c);
        } else {
            $this->print_comment_partial($c);
        }
        "</div>";
        $this->print_comments($c.replies);
    }
}
Papildinājums 2017-03-02: zilā krāsā pieliku arī ignorēšanu pēc IP adreses (pagaidām tādu ļoti vienkāršu, bez subnetiem u.tml.), kas strādās tikai tavā žurnālī un tikai, ja esi ielogojies Cibā un tikai, ja komentāriem ir saglabātas IP adreses (t.i., uz komentēšanas brīdi ir http://klab.lv/editinfo.bml bijis ieslēgts «Noglabāt IP adreses no kurām komentēts»):

Ja negribi filtrēt pēc IP adresēm, tad atstāj to 127.0.0.1 rindu, kā ir, jo no localhost adreses neviens komentārs nenāks.


NB: ja koda redaktors ir sastūmies gaužām šauriņš (man tā ir ar Firefox), tad pamēģini citu pārlūku, piem., Chrome vai Internet Exploder.
5) pēc tam jāaiziet uz http://klab.lv/customize/ , pie tēmām jāizvēlas savs jaunizveidotais komentāru filtrs un jāuzspiež «Pārmainīt»:

6) un, visbeidzot, lai sliktie komentētāji netraucētu drauglistē, jāaiziet uz http://klab.lv/editinfo.bml un jāieķeksē «View comment pages in your journal style»:

tad, spiežot uz draugu pukstu komentlapām, adresei vienmēr būs galā ?style=mine, kas nodrošinās, ka komentāru aizvācējs strādā, piemēram, šādi:

Uzspiežot uz kādas no tām «(bez virsraksta)» zibenstakām, atvērsies komentāru pavediens drauga stilā, kur to, visticamāk, varēs izlasīt.
Pie saviem ierakstiem gan tas nestrādās, t.i., sliktos komentārus vispār nevarēs izlasīt, bet tas jau labi, mazāks risks uz tiem reaģēt.

Spiežot no drauglistes linkus uz citām cibām vai pa taisno verot citas cibas, gan maģija vairs nestrādās. Lielajam Livejournālam ir tāda iespēja rādīt pilnīgi visu savā stilā (laikam gan tikai maksas lietotājiem), bet Cibā nāni, too old. Bet, ja ļoti gribas, tad var jebkurai Cibas adresei pierakstīt galā &style=mine un skatīt savā lieliskajā stilā.

Šīs pieejas mīnusi - nevar izmantot krāsu shēmas, krāsas jādefinē pašam caur http://klab.lv/customize/ pogu «Pamainīt pielāgojumus» (vai arī jākopē kods no izkārtojumu čildreniem, t.i., tēmām - http://klab.lv/customize/advanced/layerbrowse.bml ), kā arī, lai pamainītu nekvalitatīvo lietotāju sarakstu, vienmēr jālien kodā caur http://klab.lv/customize/advanced/layers.bml


Otrais variants - lietpratējiem, te es ilustrācijās neizplūdīšu:

nokopēt kādu no esošajiem izkārtojumiem (izveidot jaunu top-level izkārtojuma slāni, nokopēt kodu no kāda no šiem - http://klab.lv/customize/advanced/layerbrowse.bml , piem., http://klab.lv/customize/advanced/layersource.bml?id=707&fmt=html , pielikt zem properties (es liku zem propgroup presentation):
    property string ignored_users {
        des = "List of usernames, separated by commas, whose comments will not be shown";
    }


un kaut kur zemāk šīs funkcijas (ja stils ir kāds no «vienkāršā» varianta 2. punkta ahtungā minētajiem, tad EntryPage::print_comments jau ir un jāpiekoriģē pašam (manis mainītās daļas ietreknēju)):
function split_ass(string list, string delimiter) : string{} {
    var string{} array;
    if ($list) {  
        # Split tags into associative array on delimiter. Stolen shamelessly from lj-user kunzite1 <- rane500.
        var string buffer = "";
        foreach var string char ($list) {
          if($char == $delimiter) {
            $array{$buffer} = $buffer;
            $buffer = "";
          }
          else {
            $buffer = $buffer + $char;
          } 
        }  
        $array{$buffer} = $buffer;
    }
    return $array;
}

function EntryPage::print_comments (Comment[] cs) {
    if (size $cs == 0) { return; }

    var string{} ignored_user_list = split_ass($*ignored_users, ",");
    foreach var Comment c ($cs) {
        var int indent = ($c.depth - 1) * 25;
        var string poster = defined $c.poster ? $c.poster.username : $*text_poster_anonymous;
        "<div id='$c.dom_id' style='margin-left: ${indent}px; margin-top: 5px'>\n";
        if (($c.full) and ($ignored_user_list{$poster} == "")) {
            $this->print_comment($c);
        } else {
            $this->print_comment_partial($c);
        }
        "</div>";
        $this->print_comments($c.replies);
    }
}

Ja gribas izmantot krāsu shēmas, tad tās arī var nokopēt no esošajām un pielietot (žēl, ka Cibā nevar publicēt slāņus, lai citi arī var izmantot).
Tad tikai caur «Pamainīt pielāgojumus» savā jaunajā «ignored_users» jāieraksta, piem., «(Anonīms),(Anonymous),aivars_666», jāatceras par «View comment pages in your journal style» un aidā!

Noderīga informācija:

http://s2layers.livejournal.com/69439.html
http://s2howto.livejournal.com/31510.html
http://www.livejournal.com/doc/s2/layers.html

Vēl derētu uztaisīt, lai nekvalitatīvie autori neparādās arī draugdraugu listē, tikai man tagad nav maksas Cibas, uz kā notestēt.
Nākošo versiju varētu uztaisīt vēl ekstrēmāku, t.i., nerādīt nekvalitatīvos komentārus vispār un arī atbildes uz tiem nē, tādējādi velcētājiem uzliekot pilnīgu +i.
zibenstakaiekomentēt

Komentiņi:
[User Picture]
Kas:[info]phz
Cikos:2017. gada 2. Spamarts plkst. 02:57
(zibenstaka)
Īsti bloķēšana jau tā nav, tikai paslēpšana, bet izskatās, ka savā žurnālī vajadzētu varēt, ja tev ir ieslēgta IP adrešu saglabāšana, rīt notestēšu.

(zīmīte sev - $c.metadata{"poster_ip"})
[User Picture]
Kas:[info]phz
Cikos:2017. gada 2. Spamarts plkst. 12:31
(zibenstaka)
Pārbaudīju, savā cibā var (gan anonīmiķus, gan reģistrētos lietotājus, ja vien tev ir ieslēgta IP adrešu saglabāšana visiem - ja tikai anonīmiķiem, tad reģistrētie pēc IP nefiltrēsies) - papildināju augstāk zilā krāsā.

Var gan ar to cīnīties arī citādi, jo iestatījumos var uzlikt, piem., ka komentēt var tikai draudziņi vai tikai reģistrētie, bet var arī uzlikt ignōr ar manu metodi.
[User Picture]
Kas:[info]kihelkonna
Cikos:2017. gada 2. Spamarts plkst. 10:14
(zibenstaka)
interesants izaicinājums. manā gadījumā vajadzēja, lai nevēlamie tipi vispār manā cibā nevarētu pat ielūrēt, un tas bija risināms tikai ar atslēgu.
Kas:[info]hessin
Cikos:2017. gada 3. Spamarts plkst. 10:49
(zibenstaka)
nice
Kas:[info]hessin
Cikos:2017. gada 16. Klaprīlis plkst. 22:23
(zibenstaka)
fyi, notestēju uz friendsfriends page, lai ignorē to pašu lietotāju ierakstus. Tas skar arī friends lapu, jo neatradu, ka būtu FriendsFriendsPage, bet es pieļauju, ka, ja negribas lasīt konkrētu lietotāju, tad to nepiedraugo :>

function FriendsPage::print_entry ( Entry e )
{
   var string{} ignored_user_list = string_to_array($*ignored_users, ",");
   var string poster = defined $e.poster ? $e.poster.username : $*text_poster_anonymous;
   if ($ignored_user_list{$poster} == "") {
   	print_entry($this, $e);
   }
}
[User Picture]
Kas:[info]phz
Cikos:2017. gada 10. Krūmaijs plkst. 00:13
(zibenstaka)
Forši, paldies!