Thread: Major Additions - Talkerbot V2.2.3 (AI Posting Bot)
View Single Post
  #651  
Old 02-03-2007, 09:05 PM
blogtorank's Avatar
blogtorank blogtorank is offline
 
Join Date: Jan 2006
Posts: 450
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NuclioN View Post
Ok but these ? ? etc. are all over the place. How to make these aiml files xml compliant?
Basically do a find and replace of all of these not xml compliant characters... As you know xml compliance is a big benefactor on the web especially with how and what to display in xml for an example the ones above you would find their soundings and put them in plain English format.

Then one day, I found the extras on Tim's forums (The coder of this program) and found their translation aiml file "dev-translation.aiml" it had massive errors in it with all the
Quote:
ampersands "&"
and etc.. so I had to go through and clean it up for xml compliant:

Hence the
HTML Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
HTML Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<aiml version="1.0">

<!-- Free software (c) 2001 ALICE AI Foundation -->
<!-- This program is open source code released under -->
<!-- the terms of the GNU General Public License -->
<!-- as published by the Free Software Foundation. -->

<meta name="language" content="en"/>

<category>
<pattern>SAY * TO ME IN SPANISH</pattern>
<template>
<srai>SAY <star/> IN SPANISH</srai>
</template>
</category>

<category>
<pattern>SAY * TO ME IN GERMAN</pattern>
<template>
<srai>SAY <star/> IN GERMAN</srai>
</template>
</category>

<category>
<pattern>SAY * TO ME IN FRENCH</pattern>
<template>
<srai>SAY <star/> IN FRENCH</srai>
</template>
</category>

<category>
<pattern>SAY * TO ME IN ITALIAN</pattern>
<template>
<srai>SAY <star/> IN ITALIAN</srai>
</template>
</category>

<category>
<pattern>SAY * TO ME IN JAPANESE</pattern>
<template>
<srai>SAY <star/> IN JAPANESE</srai>
</template>
</category>

<category>
<pattern>WHAT IS SPANISH FOR *</pattern>
<template>
<srai>SAY <star/> IN SPANISH</srai>
</template>
</category>

<category>
<pattern>WHAT IS GERMAN FOR *</pattern>
<template>
<srai>SAY <star/> IN GERMAN</srai>
</template>
</category>

<category>
<pattern>WHAT IS FRENCH FOR *</pattern>
<template>
<srai>SAY <star/> IN FRENCH</srai>
</template>
</category>

<category>
<pattern>WHAT IS ITALIAN FOR *</pattern>
<template>
<srai>SAY <star/> IN ITALIAN</srai>
</template>
</category>

<category>
<pattern>WHAT IS JAPANESE FOR *</pattern>
<template>
<srai>SAY <star/> IN JAPANESE</srai>
</template>
</category>

<category>
<pattern>SAY * IN SPANISH</pattern>
<template>
<javascript>
     var word = '<star/>';
     var language = 'es'
     var _url = java.net.URL;
     var _connection = java.net.URLConnection;
     var _in = java.io.BufferedReader;
     var _inReader = java.io.InputStreamReader;
     var _line = java.lang.String;
     var _inputLine = java.lang.String;
     var _reply = "Sorry, I can't speak that language.";
     
     url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&amp;doit=done&amp;BabelFishFrontPage=yes&amp;bblType=urltext&amp;urltext=" + java.net.URLEncoder.encode(word) + "&amp;lp=en_" + language);
     connection = url.openConnection();
     
     _inReader = new java.io.InputStreamReader(connection.getInputStream());
     _in = new java.io.BufferedReader(_inReader);
     _inputLine = new java.lang.String();
     _reply = new java.lang.String();
     var _line = 0;
     var _match = "&lt;textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\"&gt;";
     while ((_inputLine = _in.readLine()) != null) {
          _line++;
          if (_inputLine.trim().startsWith(_match)) {
               _reply = _inputLine.substring(_match.length + 4);
               break;
          }
     }
     
     _in.close();         
     _reply;

</javascript>
</template>
</category>

<category>
<pattern>SAY * IN GERMAN</pattern>
<template>
<javascript>
     var word = '<star/>';
     var language = 'de'
     var _url = java.net.URL;
     var _connection = java.net.URLConnection;
     var _in = java.io.BufferedReader;
     var _inReader = java.io.InputStreamReader;
     var _line = java.lang.String;
     var _inputLine = java.lang.String;
     var _reply = "Sorry, I can't speak that language.";
     
     url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&amp;doit=done&amp;BabelFishFrontPage=yes&amp;bblType=urltext&amp;urltext=" + java.net.URLEncoder.encode(word) + "&amp;lp=en_" + language);
     connection = url.openConnection();
     
     _inReader = new java.io.InputStreamReader(connection.getInputStream());
     _in = new java.io.BufferedReader(_inReader);
     _inputLine = new java.lang.String();
     _reply = new java.lang.String();
     var _line = 0;
     var _match = "&lt;textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\"&gt;";
     while ((_inputLine = _in.readLine()) != null) {
          _line++;
          if (_inputLine.trim().startsWith(_match)) {
               _reply = _inputLine.substring(_match.length + 4);
               break;
          }
     }
     
     _in.close();         
     _reply;

</javascript>
</template>
</category>

<category>
<pattern>SAY * IN FRENCH</pattern>
<template>
<javascript>
     var word = '<star/>';
     var language = 'fr'
     var _url = java.net.URL;
     var _connection = java.net.URLConnection;
     var _in = java.io.BufferedReader;
     var _inReader = java.io.InputStreamReader;
     var _line = java.lang.String;
     var _inputLine = java.lang.String;
     var _reply = "Sorry, I can't speak that language.";
     
     url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&amp;doit=done&amp;BabelFishFrontPage=yes&amp;bblType=urltext&amp;urltext=" + java.net.URLEncoder.encode(word) + "&amp;lp=en_" + language);
     connection = url.openConnection();
     
     _inReader = new java.io.InputStreamReader(connection.getInputStream());
     _in = new java.io.BufferedReader(_inReader);
     _inputLine = new java.lang.String();
     _reply = new java.lang.String();
     var _line = 0;
     var _match = "&lt;textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\"&gt;";
     while ((_inputLine = _in.readLine()) != null) {
          _line++;
          if (_inputLine.trim().startsWith(_match)) {
               _reply = _inputLine.substring(_match.length + 4);
               break;
          }
     }
     
     _in.close();         
     _reply;

</javascript>
</template>
</category>

<category>
<pattern>SAY * IN ITALIAN</pattern>
<template>
<javascript>
     var word = '<star/>';
     var language = 'it'
     var _url = java.net.URL;
     var _connection = java.net.URLConnection;
     var _in = java.io.BufferedReader;
     var _inReader = java.io.InputStreamReader;
     var _line = java.lang.String;
     var _inputLine = java.lang.String;
     var _reply = "Sorry, I can't speak that language.";
     
     url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&amp;doit=done&amp;BabelFishFrontPage=yes&amp;bblType=urltext&amp;urltext=" + java.net.URLEncoder.encode(word) + "&amp;lp=en_" +language);
     connection = url.openConnection();
     
     _inReader = new java.io.InputStreamReader(connection.getInputStream());
     _in = new java.io.BufferedReader(_inReader);
     _inputLine = new java.lang.String();
     _reply = new java.lang.String();
     var _line = 0;
     var _match = "&lt;textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\"&gt;";
     while ((_inputLine = _in.readLine()) != null) {
          _line++;
          if (_inputLine.trim().startsWith(_match)) {
               _reply = _inputLine.substring(_match.length + 4);
               break;
          }
     }
     
     _in.close();         
     _reply;

</javascript>
</template>
</category>

<category>
<pattern>SAY * IN JAPANESE</pattern>
<template>
<javascript>
     var word = '<star/>';
     var language = 'ja'
     var _url = java.net.URL;
     var _connection = java.net.URLConnection;
     var _in = java.io.BufferedReader;
     var _inReader = java.io.InputStreamReader;
     var _line = java.lang.String;
     var _inputLine = java.lang.String;
     var _reply = "Sorry, I can't speak that language.";
     
     url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&amp;doit=done&amp;BabelFishFrontPage=yes&amp;bblType=urltext&amp;urltext=" + java.net.URLEncoder.encode(word) + "&amp;lp=en_" + language);
     connection = url.openConnection();
     
     _inReader = new java.io.InputStreamReader(connection.getInputStream());
     _in = new java.io.BufferedReader(_inReader);
     _inputLine = new java.lang.String();
     _reply = new java.lang.String();
     var _line = 0;
     var _match = "&lt;textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\"&gt;";
     while ((_inputLine = _in.readLine()) != null) {
          _line++;
          if (_inputLine.trim().startsWith(_match)) {
               _reply = _inputLine.substring(_match.length + 4);
               break;
          }
     }
     
     _in.close();         
     _reply;

</javascript>
</template>
</category>

</aiml>
I'm not going to teach any "how to xml complaint 101" , Just wanted to give you a heads-up that you want everything in plain ole english terms if you are using the encoding ISO-8859-1 in your xml (aiml) files, it's relatively simple if you know html and also just convert all the others with find and replace also you can go a faster route using any *nix flavor and know how to use sed and awk, which is faster...

As you see above in my example I cleaned that whole file up to become xml compliant to work using the ISO-8859-1!

Hope this helps...
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02771 seconds
  • Memory Usage 1,849KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_html
  • (2)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete