| 1 | #!/usr/local/bin/tclsh |
|---|
| 2 | |
|---|
| 3 | package require http |
|---|
| 4 | |
|---|
| 5 | # Parameters |
|---|
| 6 | |
|---|
| 7 | set username "USERNAME" |
|---|
| 8 | set password "PASSWORD" |
|---|
| 9 | set subject "GNAA unveils new 2005 product line" |
|---|
| 10 | set comment {<b>GNAA unveils new 2005 product line</b><br /> |
|---|
| 11 | |
|---|
| 12 | <p>The Gay Nigger Incestual Average rose fifteen points today in a sudden |
|---|
| 13 | upswing Wall Street investors are crediting to GNAA-ANUS's unveiling of what's |
|---|
| 14 | to come in the new year.</p> |
|---|
| 15 | |
|---|
| 16 | <p>Development has continued on what is perhaps GNAA's best-known product, the |
|---|
| 17 | popular Internet application Lastmeasure. New features and functionality will |
|---|
| 18 | help to ensure that users will be able to enjoy Lastmeasure, even with the most |
|---|
| 19 | modern of browsers.</p> |
|---|
| 20 | |
|---|
| 21 | <p>Gay Nigger musos eagerly await the release of YHBT, the upcomming GNAA album |
|---|
| 22 | that promises to be the new standard in trolling music. The album will include |
|---|
| 23 | cuts such as the Ripper-inspired "<i>S~H~O~A</i>" and the stirring ballad, |
|---|
| 24 | "<i>Zionist Oppressors and You</i>".</p> |
|---|
| 25 | |
|---|
| 26 | <p>Perhaps the most impressive of the new products is known only as the |
|---|
| 27 | "Drilldo."</p> |
|---|
| 28 | |
|---|
| 29 | <p>Described by GNAA president timecop as "Six barrels of sixteen-inch |
|---|
| 30 | niggercock fury", the device is mounted on a small set of tank treads - |
|---|
| 31 | mobility technology licensed from the US Army robotics program.</p> |
|---|
| 32 | |
|---|
| 33 | <p>"We've found the Drilldo to be effective in a number of uses," said GNAA |
|---|
| 34 | researcher Turkback. "Both Goatse and Mr. Hands were found to be adequately |
|---|
| 35 | fulfilled. Our special Ass-Sabot rounds are designed to directly pentrate deep |
|---|
| 36 | into the rectal core."</p> |
|---|
| 37 | |
|---|
| 38 | <p>GNAA researchers expect to see battlefield testing of the Drilldo as early |
|---|
| 39 | as Febuary, with insertion into OSDN headquarters. Military experts are |
|---|
| 40 | predicting these real-world tests to go "catastrophically erotic."</p> |
|---|
| 41 | |
|---|
| 42 | <p>GNAA has also announced plans to sponsor a Bug Chasing team in 2005, |
|---|
| 43 | supporting the Montrose Area Chasing Team in their goal to infect themselves |
|---|
| 44 | with as many different strains of AIDS as possible. </p> |
|---|
| 45 | |
|---|
| 46 | <p>The Montrose team has generally lost to bigger cities such as San Francisco |
|---|
| 47 | and New York, but have high hopes for taking the lead in 2005 with their new |
|---|
| 48 | GNAA backing. "With GNAA behind us, we'll be able to achieve our goal by |
|---|
| 49 | engaging in reckless cocaine use and unprotected anal sex with anonymous |
|---|
| 50 | partners in bookstore bathrooms," said an unnamed representative of the |
|---|
| 51 | Montrose team.</p> |
|---|
| 52 | |
|---|
| 53 | <p>In other news, The spiritual leader of the ANUS collective, Prozak/gasjews, |
|---|
| 54 | announced Friday that he would be leading his team of Neitzchian uber-trolls on |
|---|
| 55 | a quest to find the Holy Asshole. No word has yet been recieved on his |
|---|
| 56 | progress, as immediately after this announcement the leader climbed to the top |
|---|
| 57 | of Mount St. Helens in Washington State.</p> |
|---|
| 58 | |
|---|
| 59 | <p>"He's been up there for days," stated ANUS operative Iconoclast. "We can't |
|---|
| 60 | really make out what he's yelling from up there, but we think it's something |
|---|
| 61 | about 'infinite return'. He's probably not comming down until he manages to |
|---|
| 62 | set the damn thing off."</p> |
|---|
| 63 | |
|---|
| 64 | <p>Authorities say that no resolution has been reached, but that regular |
|---|
| 65 | shipments of burritos, ammunition and weapons-grade marajuana continue to be |
|---|
| 66 | brought to the peak of the volcano.</p> |
|---|
| 67 | |
|---|
| 68 | <br /> |
|---|
| 69 | <br /> |
|---|
| 70 | <b>About GNAA</b>:<br /> |
|---|
| 71 | <b>GNAA</b> (<i>GAY NIGGER ASSOCIATION OF AMERICA</i>) is the first |
|---|
| 72 | organization which gathers GAY NIGGERS from all over America and abroad for one |
|---|
| 73 | common goal - being GAY NIGGERS.<br /> |
|---|
| 74 | <br /> |
|---|
| 75 | Are you <a href="http://klerck.org/spin.gif"><b>GAY</b></a>?<br /> |
|---|
| 76 | Are you a <a href="http://www.mugshots.org/sports/oj-simpson.jpg"><b>NIGGER</b></a>?<br /> |
|---|
| 77 | Are you a <a href="http://www.gay-sex-access.com/gay-black-sex.jpg"><b>GAY NIGGER</b></a>?<br /> |
|---|
| 78 | <br /> |
|---|
| 79 | If you answered "Yes" to all of the above questions, then <b>GNAA</b> (<i>GAY NIGGER |
|---|
| 80 | ASSOCIATION OF AMERICA</i>) might be exactly what you've been looking for!<br /> |
|---|
| 81 | Join <b>GNAA</b> (<i>GAY NIGGER ASSOCIATION OF AMERICA</i>) today, and enjoy |
|---|
| 82 | all the benefits of being a full-time <b>GNAA</b> member.<br /> |
|---|
| 83 | <b>GNAA</b> (<i>GAY NIGGER ASSOCIATION OF AMERICA</i>) is the fastest-growing |
|---|
| 84 | GAY NIGGER community with THOUSANDS of members all over United States of |
|---|
| 85 | America and the World! You, too, can be a part of <b>GNAA</b> if you join |
|---|
| 86 | today!<br /> |
|---|
| 87 | <br /> |
|---|
| 88 | Why not? It's quick and easy - <b>only 3 simple steps!</b><br /> |
|---|
| 89 | <ul> |
|---|
| 90 | <li>First, you have to obtain a copy of <a href="http://us.imdb.com/Title?0274518"><i>GAYNIGGERS FROM OUTER SPACE THE MOVIE</i></a> and watch it. You can <a href="http://pepper.idge.net/gnaa/gnfos_dr.torrent">download the movie</a> (~130mb) using BitTorrent.</li> |
|---|
| 91 | <li>Second, you need to succeed in posting a <b>GNAA</b> <a href="http://en.wikipedia.org/wiki/First_Post"><i>First Post</i></a> on <a href="http://slashdot.org">slashdot.org</a>, a popular "news for trolls" website.</li> |
|---|
| 92 | <li>Third, you need to join the official <b>GNAA</b> irc channel #GNAA on irc.gnaa.us, and apply for membership.</li> |
|---|
| 93 | </ul> |
|---|
| 94 | Talk to one of the ops or any of the other members in the channel to <b>sign up |
|---|
| 95 | today</b>! Upon submitting your application, you will be required to submit |
|---|
| 96 | links to your successful <i>First Post</i>, and you <b>will</b> be tested on |
|---|
| 97 | your knowledge of <i>GAYNIGGERS FROM OUTER SPACE</i>.<br /> |
|---|
| 98 | |
|---|
| 99 | <br /> |
|---|
| 100 | If you are having trouble locating <b>#GNAA</b>, the official <i>GAY NIGGER |
|---|
| 101 | ASSOCIATION OF AMERICA</i> irc channel, you might be on a wrong irc network. |
|---|
| 102 | The correct network is <b>NiggerNET</b>, and you can connect to |
|---|
| 103 | <b>irc.gnaa.us</b> as our official server. Follow <a href="irc://irc.gnaa.us/gnaa">this link</a> if you are using an irc client such as mIRC. |
|---|
| 104 | <br /> |
|---|
| 105 | <br /> |
|---|
| 106 | If you have <b>mod points</b> and would like to support <b>GNAA</b>, please <b>moderate this post up</b>.<br /> |
|---|
| 107 | <br /> |
|---|
| 108 | <tt> |
|---|
| 109 | .________________________________________________.<br /> |
|---|
| 110 | | ______________________________________._a,____ | <b>Press contact:</b><br /> |
|---|
| 111 | | _______a_._______a_______aj#0s_____aWY!400.___ | Gary Niger<br /> |
|---|
| 112 | | __ad#7!!*P____a.d#0a____#!-_#0i___.#!__W#0#___ | <i><a href="mailto:gary_niger@gnaa.us">gary_niger@gnaa.us</a></i><br /> |
|---|
| 113 | | _j#'_.00#,___4#dP_"#,__j#,__0#Wi___*00P!_"#L,_ | GNAA Corporate Headquarters<br /> |
|---|
| 114 | | _"#ga#9!01___"#01__40,_"4Lj#!_4#g_________"01_ | 143 Rolloffle Avenue<br /> |
|---|
| 115 | | ________"#,___*@`__-N#____`___-!^_____________ | Tarzana, California 91356<br /> |
|---|
| 116 | | _________#1__________?________________________ |<br /> |
|---|
| 117 | | _________j1___________________________________ | <b>All other inquiries:</b><br /> |
|---|
| 118 | | ____a,___jk_GAY_NIGGER_ASSOCIATION_OF_AMERICA_ | Enid Al-Punjabi<br /> |
|---|
| 119 | | ____!4yaa#l___________________________________ | <i><a href="mailto:enid_indian@gnaa.us">enid_indian@gnaa.us</a></i><br /> |
|---|
| 120 | | ______-"!^____________________________________ | GNAA World Headquarters<br /> |
|---|
| 121 | ` _______________________________________________' 160-0023 Japan Tokyo-to Shinjuku-ku Nishi-Shinjuku 3-20-2<br /> |
|---|
| 122 | </tt> |
|---|
| 123 | <br /> |
|---|
| 124 | Copyright (c) 2003-2004 <a href="http://www.gnaa.us">Gay Nigger Association of America</a><br /> |
|---|
| 125 | <br /> |
|---|
| 126 | } |
|---|
| 127 | |
|---|
| 128 | # ---- |
|---|
| 129 | |
|---|
| 130 | set base_url "http://slashdot.org/" |
|---|
| 131 | set login_url "$base_url/login.pl" |
|---|
| 132 | set article_url "$base_url/article.pl" |
|---|
| 133 | set comments_url "$base_url/comments.pl" |
|---|
| 134 | |
|---|
| 135 | proc update_cookies {q} { |
|---|
| 136 | |
|---|
| 137 | global cookies |
|---|
| 138 | |
|---|
| 139 | foreach {k v} [set [set q](meta)] { |
|---|
| 140 | |
|---|
| 141 | if {[string equal -nocase $k Set-Cookie]} { |
|---|
| 142 | |
|---|
| 143 | regexp -nocase -- {([^=]+)=([^;]+);} $v m k2 v2 |
|---|
| 144 | |
|---|
| 145 | array set cookies [list $k2 $v2] |
|---|
| 146 | } |
|---|
| 147 | } |
|---|
| 148 | } |
|---|
| 149 | |
|---|
| 150 | proc format_cookies {} { |
|---|
| 151 | |
|---|
| 152 | global cookies |
|---|
| 153 | set r "" |
|---|
| 154 | |
|---|
| 155 | foreach {k v} [array get cookies] { |
|---|
| 156 | |
|---|
| 157 | append r "$k=$v; " |
|---|
| 158 | } |
|---|
| 159 | |
|---|
| 160 | regsub {; $} $r {} r |
|---|
| 161 | |
|---|
| 162 | return [list Cookie $r] |
|---|
| 163 | } |
|---|
| 164 | |
|---|
| 165 | proc getSid {} { |
|---|
| 166 | |
|---|
| 167 | global base_url |
|---|
| 168 | |
|---|
| 169 | set q [::http::geturl $base_url -headers [format_cookies]] |
|---|
| 170 | set p [::http::data $q] |
|---|
| 171 | ::http::cleanup $q |
|---|
| 172 | |
|---|
| 173 | regexp -nocase -- \ |
|---|
| 174 | {<a href="[^?]+\?sid=([0-9/]+)[^"]+"><b>Read More...</b></a>} \ |
|---|
| 175 | $p m sid |
|---|
| 176 | |
|---|
| 177 | return $sid |
|---|
| 178 | } |
|---|
| 179 | |
|---|
| 180 | proc getSid2 {sid} { |
|---|
| 181 | |
|---|
| 182 | global article_url |
|---|
| 183 | |
|---|
| 184 | set q [::http::geturl "$article_url?sid=$sid" -headers [format_cookies]] |
|---|
| 185 | set p [::http::data $q] |
|---|
| 186 | ::http::cleanup $q |
|---|
| 187 | |
|---|
| 188 | regexp -nocase -- \ |
|---|
| 189 | {<input type="hidden" name="sid" value="([0-9]+)">} \ |
|---|
| 190 | $p m sid |
|---|
| 191 | |
|---|
| 192 | return $sid |
|---|
| 193 | } |
|---|
| 194 | |
|---|
| 195 | proc getFormKey {sid} { |
|---|
| 196 | |
|---|
| 197 | global comments_url |
|---|
| 198 | |
|---|
| 199 | set q [::http::geturl "$comments_url?sid=$sid&op=Reply" -headers [format_cookies]] |
|---|
| 200 | set p [::http::data $q] |
|---|
| 201 | ::http::cleanup $q |
|---|
| 202 | |
|---|
| 203 | set fk "" |
|---|
| 204 | |
|---|
| 205 | regexp -nocase -- \ |
|---|
| 206 | {<input type="hidden" name="formkey"[ \t\r\n]*value="([0-9a-zA-Z_]+)">} \ |
|---|
| 207 | $p m fk |
|---|
| 208 | |
|---|
| 209 | return $fk |
|---|
| 210 | } |
|---|
| 211 | |
|---|
| 212 | proc postPost {sid fk} { |
|---|
| 213 | |
|---|
| 214 | global comments_url subject comment |
|---|
| 215 | |
|---|
| 216 | set query [::http::formatQuery \ |
|---|
| 217 | sid $sid \ |
|---|
| 218 | pid 0 \ |
|---|
| 219 | mode thread \ |
|---|
| 220 | startat "" \ |
|---|
| 221 | threshold -1 \ |
|---|
| 222 | commentsort 0 \ |
|---|
| 223 | formkey $fk \ |
|---|
| 224 | postersubj $subject \ |
|---|
| 225 | postercomment $comment \ |
|---|
| 226 | op Submit \ |
|---|
| 227 | posttype 2 \ |
|---|
| 228 | ] |
|---|
| 229 | |
|---|
| 230 | set q [::http::geturl $comments_url -query $query -headers [format_cookies]] |
|---|
| 231 | set p [::http::data $q] |
|---|
| 232 | ::http::cleanup $q |
|---|
| 233 | |
|---|
| 234 | return $p |
|---|
| 235 | } |
|---|
| 236 | |
|---|
| 237 | # Get login cookies |
|---|
| 238 | set login_query [::http::formatQuery \ |
|---|
| 239 | op userlogin \ |
|---|
| 240 | unickname $username\ |
|---|
| 241 | upasswd $password \ |
|---|
| 242 | userlogin "Log in" \ |
|---|
| 243 | ] |
|---|
| 244 | |
|---|
| 245 | set q [::http::geturl $login_url -query $login_query -timeout 30000] |
|---|
| 246 | update_cookies $q |
|---|
| 247 | ::http::cleanup $q |
|---|
| 248 | # # |
|---|
| 249 | |
|---|
| 250 | # Wait for a new article |
|---|
| 251 | set csid [getSid] |
|---|
| 252 | |
|---|
| 253 | while {1} { |
|---|
| 254 | |
|---|
| 255 | after 30000 |
|---|
| 256 | |
|---|
| 257 | set nsid [getSid] |
|---|
| 258 | |
|---|
| 259 | if {[string compare $csid $nsid]} break |
|---|
| 260 | |
|---|
| 261 | puts -nonewline ":" |
|---|
| 262 | flush stdout |
|---|
| 263 | } |
|---|
| 264 | # # |
|---|
| 265 | |
|---|
| 266 | # Wait for comments sid |
|---|
| 267 | while {1} { |
|---|
| 268 | |
|---|
| 269 | after 10000 |
|---|
| 270 | |
|---|
| 271 | set nsid [getSid2 $nsid] |
|---|
| 272 | |
|---|
| 273 | if {[string first / $nsid] < 0} break |
|---|
| 274 | |
|---|
| 275 | puts -nonewline ";" |
|---|
| 276 | flush stdout |
|---|
| 277 | } |
|---|
| 278 | # # |
|---|
| 279 | |
|---|
| 280 | # Wait for formkey |
|---|
| 281 | while {1} { |
|---|
| 282 | |
|---|
| 283 | after 10000 |
|---|
| 284 | |
|---|
| 285 | set fk [getFormKey $nsid] |
|---|
| 286 | |
|---|
| 287 | if {[string length $fk]} break |
|---|
| 288 | |
|---|
| 289 | puts -nonewline "!" |
|---|
| 290 | flush stdout |
|---|
| 291 | } |
|---|
| 292 | # # |
|---|
| 293 | |
|---|
| 294 | puts "Frist post attempt!" |
|---|
| 295 | puts "nsid: $nsid, fk: $fk" |
|---|
| 296 | |
|---|
| 297 | after 20000 |
|---|
| 298 | |
|---|
| 299 | puts "----" |
|---|
| 300 | puts [postPost $nsid $fk] |
|---|
| 301 | puts "----" |
|---|