MLDonkey Forum Index
Homepage •  Bugs •  Tasks •  Patches •  SF.net Project Page •  ChangeLog •  German forum •  Links •  Wiki •  Downloads
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Russian names

 
Post new topic   Reply to topic    MLDonkey Forum Index -> Russian
View previous topic :: View next topic  
Author Message
EOF8157
neophyte


Joined: 27 Mar 2012
Posts: 4

PostPosted: Tue Mar 27, 2012 9:55 pm    Post subject: Russian names Reply with quote

Приветствую!
Ставлю 3.1 версию mldonkey на freebsd 9.0
Локаль koi8-r
При скачивании торрентов часть папок\файлов на русском, в кои, а часть в utf. Особый шик - папка в KOI, а файлы в ней UTF Smile
Как поправить ?
Нашел экспериментальную опцию "utf8_filename_conversions" в downloads.ini но что туда вписывать надо нигде не написано
Back to top
View user's profile Send private message
EOF8157
neophyte


Joined: 27 Mar 2012
Posts: 4

PostPosted: Fri Mar 30, 2012 5:46 am    Post subject: Reply with quote

Ну, никому не интересно чтоль ? Smile
Программисты есть ?
кусок функции commonoptions
Code:

let safe_utf8 s =
  if Charset.is_utf8 s
  then s
  else failwith (Printf.sprintf "%s is not an UTF-8 string.\n" s)

let value_to_utf8 v =
  let s = Options.value_to_string v in
  safe_utf8 s

let utf8_to_value s =
  let s = safe_utf8 s in
  Options.string_to_value s

let utf8_option =
  define_option_class "Utf8"
  value_to_utf8 utf8_to_value

let utf8_filename_conversions = define_expert_option current_section ["utf8_filename_conversions"]
  "The conversions to apply on Unicode characters"
    (list_option (tuple2_option (int_option, utf8_option))) []

кусок commoninteractive
Code:

let canonize_basename name =
  let buf = Buffer.create 100 in
  let uname = Charset.Locale.to_utf8 name in
  for i = 0 to Charset.utf8_length uname - 1 do
    (* replace chars on users request *)
    let uc = Charset.utf8_get uname i in
    try
      let us = List.assoc uc !!utf8_filename_conversions in
      for j = 0 to Charset.utf8_length us - 1 do
        let uc' = Charset.utf8_get us j in
        let uc'' = check_forbidden_chars uc' in
        Charset.add_uchar buf uc''
      done
    with _ ->
      begin
        let uc' = check_forbidden_chars uc in
        Charset.add_uchar buf uc'
      end
  done;
  if not Autoconf.windows then
    Charset.Locale.to_locale (Buffer.contents buf)
  else
    Buffer.contents buf (* Windows uses patched Ocaml which always uses Unicode chars *)


Методом проб и ошибок и попытки вникания в вышенаписанный код пришел к следующим параметрам в переменной "utf8_filename_conversions" :

Code:

utf8_filename_conversions = [
  (число, "строка");
  (1, "пя");
  ]


число думается код символа(например по коиCool а "строка" - символ UTF в кавычках, вместо строки подходит так же hex (млд не ругается)
Только вот чуда перекодировки так и не случилось. Может функция отключена ? или мои выводы по параметрам строки не верны
Back to top
View user's profile Send private message
vad
neophyte


Joined: 27 Aug 2005
Posts: 11

PostPosted: Fri Mar 30, 2012 7:00 am    Post subject: Reply with quote

Гляньте обсуджение в соседней теме Problema s kyrillic'oi v share
Back to top
View user's profile Send private message Send e-mail
EOF8157
neophyte


Joined: 27 Mar 2012
Posts: 4

PostPosted: Fri Mar 30, 2012 8:01 am    Post subject: Reply with quote

vad
Не нужна мне локаль UTF8 , вот в чем дело то
Хотелось бы подружить с однобайтовой кодировкой типа KOI8 или CP1251

Проблема в принципе в том, что если качать торент с папкой то вложенные файлы будут в UTF, одночные файлы по русски названы нормально
так же в UTF хранятся файлы .torrent (млд их переименовывает зачем то)
Back to top
View user's profile Send private message
EOF8157
neophyte


Joined: 27 Mar 2012
Posts: 4

PostPosted: Fri Mar 30, 2012 2:40 pm    Post subject: Reply with quote

Ладно, решил копать в другую сторону - запуска скрипта(с convmv) после скачки. и тут облом!
для начала написал пример, для просмотра что чего(скриптов еще писать не приходилось)

Code:

#!/usr/local/bin/bash
# file_completed_cmd interface
HASH="$1"
SIZE="$2"
FILENAME="$3"
DIR="$INCOMING"

echo File: "$FILENAME" >>1t.log
echo Hash: $HASH >>1t.log
echo Size: $SIZE >>1t.log
echo Dirs: $DIR >>1t.log
echo =========================== >>1t.log
exit 0


Скрипт запускается, все замечательно, только вот в логах ошибка

Code:

2012/03/30 18:32:56 [BT] [file_num 23][temp /share/temp/BT-HO24QPMDPSGCMTHYDYJOTOX7O3TXLXN4] Tracker return: completed Массовая библиотека инженера. Электроника
2012/03/30 18:32:56 [BT] [file_num 23][temp /share/temp/BT-HO24QPMDPSGCMTHYDYJOTOX7O3TXLXN4] Tracker return: completed Массовая библиотека инженера. Электроника
2012/03/30 18:33:04 [cInt] Exception waitpid failed: Interrupted system call while executing /home/share/.mldonkey/fcc


Кстати - почему-то в логах окончание закачки файла дважды пишется
Я даже спецом БАШ поставил - думал дело в нем

И после сей ошибки у млд немного сносит крышу - перестает реагировать на добавление торентов(через санчо)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    MLDonkey Forum Index -> Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Sourceforge.net Logo