Перейти к содержимому


GOOGLE


Сообщений в теме: 34

#21 masterzx

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 738 сообщений
  • ГородБарнаул

Отправлено 21 Июль 2009 - 13:45

fraer72 сказал:

Вот набросок на переводчика! Но самого перевода я не увидел тока куча всекой лишней Х*йни! :(
/**
* translate
*/

............
      proc.mq.add(uin,"Перевод\n" + ss[i]);      
   }
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
Этот скрипт не рабочий и работать не будет... там в гугл другой запрос идет... На который ответ такой приходит
["ночь",[["существительное","ночь","вечер","темнота","мрак"],["прилагательное","ночной","вечерний"],["наречие","в бессонные ночные часы"]]]
только он в utf-8 в общем сейчас ответ так выглядит
перевод
["опюш",[["noun","опюш","чеюет","фенопфб","нтбл"],["adjective","опюопк","чеюетойк"],["adverb","ч веуупооще опюоще юбущ"]]]
Чтоб доделать скрипт нужен перевод из utf в windows-1251....
/**
* translate
*/

import ru.jimbot.modules.http.HttpConnection;
import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
import sun.io.*;



//Установка скрипта как обработчика команды
if(in.equals("install")){
   cmd.addCommand("!translate", new Cmd("!translate","$c",39,name));
	cmd.addCommand("!первод", new Cmd("!перевод","$c",39,name));   
   out="Ok";
   return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;                                        

try{
   Vector v = cmd.getParser().parseArgs(msg);
   String text = (String)v.get(0);
   String s =  MainProps.getStringFromHTTP("http://www.google.com/translate_a/t?client=t&text="+text+"&sl=en&tl=ru");
   proc.mq.add(uin,"Перевод\n" + s);      
   } catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
скрипт можно сказать почти готов...

#22 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 21 Июль 2009 - 13:48

спс ;)

#23 Sushka

    Профи

  • Модераторы
  • 741 сообщений
  • ГородСмоленск

Отправлено 21 Июль 2009 - 16:20

почистил тему.
зы у нас самообучение, нефиг ныть что ничего не умеешь и молить других что бы тебя научили.
ззы я с похмелья и злой. за оффтоп буду сыпать предупреждениями. и не обращайте внимания на орфографию...
зззы p0is0n, у тебя в чате видел и википедию, и поиски по гугле :) не расскажешь как парсишь?

#24 p0is0n

    Пользователь

  • Пользователи
  • PipPip
  • 85 сообщений

Отправлено 22 Июль 2009 - 19:18

Sushka сказал:

почистил тему.
зы у нас самообучение, нефиг ныть что ничего не умеешь и молить других что бы тебя научили.
ззы я с похмелья и злой. за оффтоп буду сыпать предупреждениями. и не обращайте внимания на орфографию...
зззы p0is0n, у тебя в чате видел и википедию, и поиски по гугле :) не расскажешь как парсишь?

регулярные выражения, больше никак.

#25 masterzx

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 738 сообщений
  • ГородБарнаул

Отправлено 22 Июль 2009 - 20:10

Народ ткните носом в исходник где эта функция лежит... В смысле в каком файле...
MainProps.getStringFromHTTP


#26 pankrat

    Профи

  • Модераторы
  • 463 сообщений
  • ГородРоссия - Курск

Отправлено 22 Июль 2009 - 20:42

ru.jimbot.util > MainProps.java
    public static String getStringFromHTTP(String u){
        String s = "";
        try {
            URL url = new URL(u);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestProperty ( "User-agent", "JimBot/0.4 (Java" + 
                    "; U;" + System.getProperty("os.name") + " " + System.getProperty("os.arch") + " " + System.getProperty("os.version") +
                    "; ru; " + System.getProperty("java.vendor") + " " + System.getProperty("java.version") +
                    ")");
            BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
            byte[] b = new byte[1024];
            int count = 0;
            ByteArrayOutputStream bout = new ByteArrayOutputStream();
            while ((count=bis.read(b)) != -1)
                bout.write(b, 0, count);
            bout.close();
            bis.close();
            conn.disconnect();
            s = bout.toString("windows-1251");
        } catch (Exception ex) {
            Log.error("Ошибка HTTP при чтении новой версии", ex);
        }
        return s;
    }


#27 masterzx

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 738 сообщений
  • ГородБарнаул

Отправлено 22 Июль 2009 - 21:02

pankrat сказал:

ru.jimbot.util > MainProps.java
Спасибо))

#28 masterzx

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 738 сообщений
  • ГородБарнаул

Отправлено 23 Июль 2009 - 20:56

Все скрипт готов :D
/**
* translate
*/

import ru.jimbot.modules.http.HttpConnection;
import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
import sun.io.*;



//Установка скрипта как обработчика команды
if(in.equals("install")){
	cmd.addCommand("!translate", new Cmd("!translate","$c",39,name));
	cmd.addCommand("!перевод", new Cmd("!перевод","$c",39,name));
	out="Ok";
return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; 

try{
	//парсим
	Vector v = cmd.getParser().parseArgs(msg);
	String text = (String)v.get(0);
	//проверка
	if (text==""){proc.mq.add(uin,"Не ввели слово для перевода !первод <слово для перевода>");return; } 
	text = text.replace(" ","%20");
	//Запрашиваем перевод слова на сервере
	String s = MainProps.getStringFromHTTP("http://www.google.com/translate_a/t?client=t&text="+text+"&sl=en&tl=ru");
	//перевод в другую кодировку
	char[] c = s.toCharArray();
	s="";
	for(int i = 0; i < c.length; i++){
		switch (c[i]){ 
//строчные буквы
			case 0x3F3: s += "ё"; break;
			case 0x403: s += "Ё"; break;
			case 0x410: s += "ю"; break;
			case 0x411: s += "а"; break;
			case 0x412: s += "б"; break;
			case 0x413: s += "ц"; break;
			case 0x414: s += "д"; break;
			case 0x415: s += "е"; break;
			case 0x416: s += "ф"; break;
			case 0x417: s += "г"; break;
			case 0x418: s += "х"; break;
			case 0x419: s += "и"; break;
			case 0x41A: s += "й"; break;
			case 0x41B: s += "к"; break;
			case 0x41C: s += "л"; break;
			case 0x41D: s += "м"; break;
			case 0x41E: s += "н"; break;
			case 0x41F: s += "о"; break;
			case 0x420: s += "п"; break;
			case 0x421: s += "я"; break;
			case 0x422: s += "р"; break;
			case 0x423: s += "с"; break;
			case 0x424: s += "т"; break;
			case 0x425: s += "у"; break;
			case 0x426: s += "ж"; break;
			case 0x427: s += "в"; break;
			case 0x428: s += "ь"; break;
			case 0x429: s += "ы"; break;
			case 0x42A: s += "з"; break;
			case 0x42B: s += "ш"; break;
			case 0x42C: s += "э"; break;
			case 0x42D: s += "щ"; break;
			case 0x42E: s += "ч"; break;
			case 0x42F: s += "ъ"; break;
		//Заглавные буквы
			case 0x430: s += "Ю"; break;
			case 0x431: s += "А"; break;
			case 0x432: s += "Б"; break;			
			case 0x433: s += "Ц"; break;
			case 0x434: s += "Д"; break;
			case 0x435: s += "Е"; break;
			case 0x436: s += "Ф"; break;
			case 0x437: s += "Г"; break;
			case 0x438: s += "Х"; break;
			case 0x439: s += "И"; break;
			case 0x43A: s += "Й"; break;
			case 0x43B: s += "К"; break;
			case 0x43C: s += "Л"; break;
			case 0x43D: s += "М"; break;
			case 0x43E: s += "Н"; break;
			case 0x43F: s += "О"; break;
			case 0x440: s += "П"; break;
			case 0x441: s += "Я"; break;
			case 0x442: s += "Р"; break;
			case 0x443: s += "С"; break;
			case 0x444: s += "Т"; break;
			case 0x445: s += "У"; break;
			case 0x446: s += "Ж"; break;
			case 0x447: s += "В"; break;
			case 0x448: s += "Ь"; break;
			case 0x449: s += "Ы"; break;
			case 0x44A: s += "З"; break;
			case 0x44B: s += "Ш"; break;
			case 0x44C: s += "Э"; break;
			case 0x44D: s += "Щ"; break;
			case 0x44E: s += "Ч"; break;
			case 0x44F: s += "Ъ"; break;
		//доп символы 
			//case 0x: s += ""; break;
	//Вывод остальных символов
			default: if((c[i]>0xff)) s +="$" +(1+c[i]-1)+"; "; else s += c[i];
		}
	}
//Подкотовка сообщения к выводу
	s = s.replace("[разг.]","(разг.)");
	s = s.replace(""noun",","nСуществительное:n");
	s = s.replace(""verb",","nГлагол:n");
	s = s.replace(""adverb",","nНаречие:n");
	s = s.replace(""adjective",","nПрилагательное:n");
	s = s.replace(""conjunction",","nСоюз:n");
	s = s.replace(""preposition",","nПредлог:n");
	s = s.replace(""abbreviation",","nАббревиатура:n");
	s = s.replace(""pronoun"","nМестоимение:n");
	//s = s.replace(""adverb"","n:n");
	//s = s.replace(""adverb"","n:n");
	//s = s.replace(""adverb"","n:n");
	//s = s.replace(""adverb"","n:n");
	//s = s.replace(""adverb"","n:n");
	s = s.replace("],[","");
	s = s.replace("""","");
	s = s.replace("[","");
	s = s.replace("]","");
	s = s.replace(",,",",");
	s = s.replace(",","; ");
	s ="Перевод слова "+text+":n" + s;
	
//	OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./text/slova",true),"windows-1251");
//   ow.write(s+"\n");
//   ow.close();
  Log.talk("!перевод" + uin);
   
//Резка и вывод сообщения	
	c = s.toCharArray();
	s = "";
	for (int i = 0; i < c.length; i++){
		if(i == 500 || i == 1000 || i == 1500 || i == 2000 || i == 2500 || i == 3000 || i == 3500 || i == 4000 || i == 4500 || i == 5000 || i == 5500 || i == 6000 ){
			proc.mq.add(uin, s+c[i]);
			s = "";
		}else s += c[i];
	}
	proc.mq.add(uin, s);	
} catch (Exception ex) {
	ex.printStackTrace();
	proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
P.S.
Блин какой урод придумал кодировку KOI-8R :twisted:

#29 mobinext2009

    Продвинутый пользователь

  • Специалисты
  • PipPipPip
  • 118 сообщений
  • ГородСатка

Отправлено 23 Июль 2009 - 21:56

блин а в какои кодировке идет текст в чат??? ыыы пытался скул запросом выбирать город))

Vector v = cmd.getParser().parseArgs(msg);
String text = (String)v.get(0);


PreparedStatement pst = db.getDb().prepareStatement("SELECT `num` FROM `weather` WHERE `txt` = " +text);

и чета буксую)))
Ошибка Unknown column 'Сатка' in 'where clause'


#30 spec

    Администратор

  • Администраторы
  • 2 399 сообщений
  • ГородКаменск-Уральский

Отправлено 24 Июль 2009 - 05:54

Доки по методу prepareStatement читать не пробовал? Или хотя бы примеры его использования в боте поглядеть.

#31 mobinext2009

    Продвинутый пользователь

  • Специалисты
  • PipPipPip
  • 118 сообщений
  • ГородСатка

Отправлено 24 Июль 2009 - 09:20

Чето даже не подумал об этом.:-D
Читал вообще о запросах кирилицеи. Чтобы примерно понять смысл. Ну думаю решение уже нашел. Вечером твоему совету последую Spec.
---
PreparedStatement pst = db.getDb().prepareStatement("SELECT `num` FROM `weather` WHERE `txt` = ? ");

pst.setString(1, text);
ResultSet rs = pst.executeQuery();
Если кому интересно .

#32 Arkadik007

    Специалист

  • Пользователи
  • PipPipPipPip
  • 372 сообщений
  • ГородКраснодар

Отправлено 24 Июль 2009 - 14:32

РЕбята тут перевод толкьо с английского на русский да? а как сделать англо русский? И РУССКОГО АНГЛИЙСКИЙ?

#33 arhangel_ess

    Пользователь

  • Пользователи
  • PipPip
  • 59 сообщений

Отправлено 24 Июль 2009 - 16:51

замени в скрипте это
String s = MainProps.getStringFromHTTP("http://www.google.com/translate_a/t?client=t&text="+text+"&sl=en&tl=ru");
на это
String s = MainProps.getStringFromHTTP("http://www.google.com/translate_a/t?client=t&text="+text+"&sl=ru&tl=en");
и сделай новую команду будет два скрипта один рус-англ второй англ-рус
сам не пробывал может работать не правельно, но по идее должно быть так :|

#34 DNK

    Новичок

  • Пользователи
  • Pip
  • 28 сообщений
  • Городглухих, тупых, не прощенных

Отправлено 11 Июль 2010 - 21:04

народ а можно как то перевести на анек бот? помогите!=)

#35 HellFaust

    Живодёр

  • Модераторы
  • 1 823 сообщений
  • ГородMidian

Отправлено 11 Июль 2010 - 21:41

Просмотр сообщенияDNK (11 Июль 2010 - 21:04) писал:

народ а можно как то перевести на анек бот? помогите!=)
Я в теме про анекбота кнул пример перевода инфоскриптов на анек... дерзай...





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей