phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
Przesunięty przez: joli
22-01-2009, 19:25
Jak automatycznie dodać nowego posta?
Autor Wiadomość
l0ud

Pomógł: 1 raz
Posty: 14
Wysłany: 11-06-2006, 19:30   Jak automatycznie dodać nowego posta?

Witam. Mam pewnien problem. Piszę na pewne forum bota, który filtruje nowe tematy. Jeżeli są wulgaryzmy czy np. !!!!! to dopisuje się do tematu i przenosi go do kosza. Mam problem z dokończeniem pewnych funkcji do niego.

Funkcja 1, chodzi o automatyczne odpowiadanie na niewłaściwego posta. Nie wiem, jakie zapytanie(a?) muszę wykonać, jakie zmienne pobrać, aby post bota pojawił się pod tym użytkownika. Patrzałem na modyfikacje mającą na celu dodawanie reklam, ale to zmiany w viewtopic.php.

Funkcja 2, przenoszenie postu do kosza:

Kod:

function bot_temat_kosz() {
global $sql;
global $user_post;
global $trash_forum_id;
$new_forum_id = $trash_forum_id;
$topic_id = $user_post['id'];

$sql = "UPDATE " . TOPICS_TABLE . " SET forum_id = $new_forum_id WHERE topic_id = $topic_id";

if ( !($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not move forum to trash', '', __LINE__, __FILE__, $sql);
}

$sql = "UPDATE " . READ_HIST_TABLE . " SET forum_id = $new_forum_id WHERE topic_id = $topic_id";

if ( !($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not move forum to trash', '', __LINE__, __FILE__, $sql);
}

$sql = "UPDATE " . POSTS_TABLE . " SET forum_id = $new_forum_id WHERE topic_id = $topic_id";
               
if ( !($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not move forum to trash', '', __LINE__, __FILE__, $sql);
}

return true;
}


$user_post, $trash_forum_id - te zmienne są przygotowane poza funkcją

Czy ten kod będzie działał?
 
     
Gadatliwa Kasia 

   
ciaastek


Pomógł: 37 razy
Posty: 434
Wysłany: 15-06-2006, 11:56   

l0ud napisał/a:
Czy ten kod będzie działał?

Najlepsza metoda to spróbować :D
 
     
Radek



Pomógł: 955 razy
Posty: 4614
Wysłany: 15-06-2006, 12:02   

l0ud napisał/a:
Funkcja 1, chodzi o automatyczne odpowiadanie na niewłaściwego posta. Nie wiem, jakie zapytanie(a?) muszę wykonać, jakie zmienne pobrać, aby post bota pojawił się pod tym użytkownika. Patrzałem na modyfikacje mającą na celu dodawanie reklam, ale to zmiany w viewtopic.php.

obejrzyj sobie kod z functions_post.php i posting.php - chodzi o zapytania z INSERT INTO albo zobacz strukture tabel phpbb_posts i phpbb_posts_text

l0ud napisał/a:
Funkcja 2, przenoszenie postu do kosza:

to torch niedokladne, bo jezeli bot przenosi post do kosza to wywala od razu caly temat...
a co jezeli temat ma np. 150 postow a w 151 napisze jakis wulgaryzm ? Caly temat zostanie przesuniety a nie tlyko jeden post
 
     
l0ud

Pomógł: 1 raz
Posty: 14
Wysłany: 19-06-2006, 08:53   

Skończyłem kod, ale popełniłem pewnie masę błędów :/ Pojawia się błąd MySQL.
Daje cały kod:

Kod:
<?php
//ustawienia

$kom_1 = ':...: <br />Możesz chociaż nie przeklinać w temacie? :mad:';
$kom_2 = 'CapsLock się zaciął? :kijemgo:';
$kom_3 = 'Temat bezpłciowy jak glizda :suchy:<br />Przykro mi';
$kom_4 = 'Więcej ? się nie dało, nie? :dobani:';
$kom_5 = 'Możesz nie krzyczeć?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!';
$kom_6 = 'Ładniej Cię nie nauczyli mówić?! :wsciekly:';
$kom_7 = 'A czasem tag [you] jest tu zabroniony? :chytry:';
$powod_warnu = 'Nieprzestrzeganie regulaminu forum - warn :/';
$ile_ost_p = '3'; // ile ostrzeżeń
$id_bota = '52';

$wulgaryzmy = array(
'cip',
'kurw',
'huj',
'pizd',
'cip',
'jeb',

);




//skrypt

$bot_act = 1;


function wulg_spr($text) {
    global $wulgaryzmy;
    $i=0;
    while($wulgaryzmy[$i]) {
    if (stristr($text,$wulgaryzmy[$i])) return true;
    $i++;
    }
return false;
}





function bot_p_warn() {
global $db;
global $user_post;
global $userdata;
$sql = "UPDATE ". USERS_TABLE ." SET user_wulg_f = ( `user_wulg_f` + 1 ) WHERE user_id = '".$user_post['user']."'";

if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not update user_wulg_f', '', __LINE__, __FILE__, $sql);
$userdata['user_wulg_f']++;
global $userdata;
}



function bot_dopisz($text, $warn, $kosz) {
global $board_config, $lang, $db, $phpbb_root_path, $phpEx;
global $userdata, $topic_id, $user_ip, $id_bota;
global $current_time;
global $topic_id;
global $forum_id;
global $ile_ost_p;
global $user_post;


if ($userdata['user_wulg_f'] >= $ile_ost_p) {
bot_warn();
$sql = "UPDATE " . USERS_TABLE . " SET user_wulg = '0' WHERE user_id = '".$user_post['user']."'";
$db->sql_query($sql);
$warn = 1;
}

if ($warn==0) {
$text = $text.'<br /><br />Pisemne ostrzeżenie';
}
else {
$text = $text.'<br /><br />WARN';
}

if ($kosz==1) {
$text = $text.'<br />Kosz';
}
$tmp_c = $current_time + 5;
$sql = "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig, user_agent, post_icon, post_expire, post_approve) VALUES ($topic_id, $forum_id, " . $id_bota . ", '', ".$tmp_c.", '127.0.0.1', 1, 1, 1, 0, 'Mosrilla/1.0 (compatible; MSIE 0.0; Windows 92; MyIE1)', 0, 0, 1)";
    if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )
    {
        message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
    }

$post_id = $db->sql_nextid();

$sql = "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, 'Czytałes regulamin?', '', '$text')";
    if ( !$db->sql_query($sql) )
    {
        message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
    }


}


function get_post() {
$temp = array();
global $userdata;
global $topic_id;
$temp['id'] = $topic_id; // topic_id
$temp['temat'] = $HTTP_POST_VARS['subject'];
$temp['temat2'] = '';
$temp['tresc'] = $HTTP_POST_VARS['message'];
$temp['user'] = $userdata['user_id'];

return $temp;

}

function bot_warn() {
global $powod_warnu;
global $sql;
global $user_post;
global $id_bota;

$sql = "INSERT INTO " . WARNINGS_TABLE . " VALUES(NULL, '".$user_post['user']."', '$id_bota', '" . CR_TIME . "', '1', '".$powod_warnu."', '0', '1')";
if ( !$result = $db->sql_query($sql) ) message_die(GENERAL_ERROR, 'Could not insert warning', '', __LINE__, __FILE__, $sql);
}


function bot_temat_kosz() {
global $sql;
global $user_post;
global $trash_forum_id;
$new_forum_id = $trash_forum_id;
$topic_id = $user_post['id'];

$sql = "UPDATE " . TOPICS_TABLE . " SET forum_id = $new_forum_id WHERE topic_id = $topic_id";

if ( !($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not move forum to trash', '', __LINE__, __FILE__, $sql);
}

$sql = "UPDATE " . READ_HIST_TABLE . " SET forum_id = $new_forum_id WHERE topic_id = $topic_id";

if ( !($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not move forum to trash', '', __LINE__, __FILE__, $sql);
}

$sql = "UPDATE " . POSTS_TABLE . " SET forum_id = $new_forum_id WHERE topic_id = $topic_id";

if ( !($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not move forum to trash', '', __LINE__, __FILE__, $sql);
}

return true;
}




$user_post = get_post();

//sprawdzanie

//Przekleństwa - temat
if (wulg_spr($user_post['temat']) && $bot_act == 1) {
bot_warn();
bot_dopisz($kom_1,1,1);
bot_temat_kosz();
$bot_act = 0;
}
if (wulg_spr($user_post['temat_2']) && $bot_act == 1) {
bot_warn();
bot_dopisz($kom_1,1,1);
bot_temat_kosz();
$bot_act = 0;
}

// bezpłciowy temat
$bot_temp = $user_post['temat'];
$bot_temp = str_replace('?','',$bot_temp);
$bot_temp = str_replace('!','',$bot_temp);
$bot_temp = str_replace(':','',$bot_temp);
$bot_temp = str_replace('(','',$bot_temp);
$bot_temp = str_replace(')','',$bot_temp);
$bot_temp = str_replace('.','',$bot_temp);
$bot_temp = str_replace(',','',$bot_temp);
$bot_temp = str_replace(';','',$bot_temp);
$bot_temp = str_replace(' ','',$bot_temp);
$bot_temp = strtolower($bot_temp);
if ($bot_temp == 'pomocy' || $bot_temp == 'pomóżcie' || $bot_temp == 'pomozcie' || $bot_temp == 'help' || $bot_temp == 'co robić' || $bot_temp == 'co robic' || $bot_temp == '') {
if ($bot_act == 1) {
bot_p_warn();
bot_dopisz($kom_3,0,1);
bot_temat_kosz();
$bot_act = 0;
}
}

// CapsLock

$bot_temp = $user_post['tresc'];

if ($bot_temp == strtoupper($bot_temp) && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_2,0,1);
bot_temat_kosz();
}
$bot_temp = $user_post['temat'];

if ($bot_temp == strtoupper($bot_temp) && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_2,0,1);
bot_temat_kosz();
}

// ????

if (stristr($user_post['temat'], '????') && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_4,0,1);
bot_temat_kosz();
}

if (stristr($user_post['tresc'], '????') && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_4,0,1);
bot_temat_kosz();
}

// !!!!

if (stristr($user_post['temat'], '!!!!') && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_5,0,1);
bot_temat_kosz();
}

if (stristr($user_post['tresc'], '!!!!') && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_5,0,1);
bot_temat_kosz();
}

// [you]

if (stristr($user_post['temat'], '[you]') && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_7,0,0);
}


if (stristr($user_post['tresc'], '[you]') && $bot_act) {
$bot_act = 0;
bot_p_warn();
bot_dopisz($kom_7,0,0);
}

// wulgaryzmy

if (wulg_spr($user_post['tresc']) && $bot_act) {
bot_p_warn();
bot_dopisz($kom_6,0,0);
$bot_act = 0;
}
?>


Podczepiłem go do pliku functions_post.php

Kod:
        if ( $delete_option_sql != '' )
        {
            $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . "
                WHERE vote_option_id IN ($delete_option_sql)
                    AND vote_id = $poll_id";
            if ( !$db->sql_query($sql) )
            {
                message_die(GENERAL_ERROR, 'Error deleting pruned poll options', '', __LINE__, __FILE__, $sql);
            }
        }
    }

    $meta = '<meta http-equiv="refresh" content="' . $board_config['refresh'] . ';url=' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $post_id) . '#' . $post_id . '">';
    $message = $lang['Stored'] . '<br /><br />' . sprintf($lang['Click_view_message'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $post_id) . '#' . $post_id . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');

if ($mode == 'newtopic') {
include('robot2_data.php');
}
    return false;
}


Domyślam się że błąd polega na przechwytywaniu zmiennych. Niestety nie mam pojęcia jak zdobyć np. nazwę użytkownika, który pisze aktualnie posta :/

Proszę o pomoc
Pozdrawiam
 
     
irekk


Pomógł: 283 razy
Posty: 2927
Wysłany: 19-06-2006, 09:08   

Kod:
$userdata['username']
_________________
Cygantura
 
     
l0ud

Pomógł: 1 raz
Posty: 14
Wysłany: 19-06-2006, 11:39   

zobacz jak to zrobiłem:

Kod:
$temp['id'] = $topic_id;
$temp['temat'] = $HTTP_POST_VARS['subject'];
$temp['temat2'] = '';
$temp['tresc'] = $HTTP_POST_VARS['message'];
$temp['user'] = $userdata['user_id'];


Czy te zmienne dobrze pobieram? Może jest lepszy sposób?

Kod:
$temp['temat2'] = '';


Chodzi o pobranie nazwy opisu tematu(?) to co wpisuje się pod nim wpisuje (przy zakładaniu)

Robot w obecnej wersji ma reagować tylko na nowe tematy :/
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,15 sekundy. Zapytań do SQL: 11
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

Design Cart - Tworzenie sklepu internetowego

iRonin.IT

https://nabea.pl

• Zamów reklamę