mldonkey-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiMisc.ml


From: mldonkey-commits
Subject: [Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiMisc.ml
Date: Sun, 27 Nov 2005 09:04:35 -0500

Index: mldonkey/src/gtk2/gui/guiMisc.ml
diff -u mldonkey/src/gtk2/gui/guiMisc.ml:1.14 
mldonkey/src/gtk2/gui/guiMisc.ml:1.15
--- mldonkey/src/gtk2/gui/guiMisc.ml:1.14       Tue Nov 22 17:59:32 2005
+++ mldonkey/src/gtk2/gui/guiMisc.ml    Sun Nov 27 14:04:33 2005
@@ -85,7 +85,7 @@
 
 let int64_of_size size =
   let len = String.length size in
-  let u = String.sub size (len - 2) len in
+  let u = String.sub size (len - 2) 2 in
   let s = String.sub size 0 (len - 3) in
   try
     match u with
@@ -1285,6 +1285,60 @@
 
 (*************************************************************************)
 (*                                                                       *)
+(*                        uid_to_common_uid                              *)
+(*                                                                       *)
+(*************************************************************************)
+
+let uid_to_common_uid uid =
+  match uid with
+    Bitprint (sha1,ttr) -> Sha1 sha1
+  | BTUrl url -> Sha1 url
+  | _ -> uid
+
+(*************************************************************************)
+(*                                                                       *)
+(*                        ustring_of_uid                                 *)
+(*                                                                       *)
+(*************************************************************************)
+
+let ustring_of_uid uid =
+  let sep = ":" in
+  match uid with
+    Bitprint (sha1,ttr) ->
+      "urn" ^ sep ^ "sha1" ^ sep ^ (Sha1.to_string sha1)
+  | Sha1 sha1 ->
+      "urn" ^ sep ^ "sha1" ^ sep ^ (Sha1.to_string sha1)
+  | Ed2k ed2k ->
+      "urn" ^ sep ^ "ed2k" ^ sep ^ (Md4.to_string ed2k)
+  | Md5 md5 ->
+      "urn" ^ sep ^ "md5" ^ sep ^ (Md5.to_string md5)
+  | TigerTree ttr -> 
+      "urn" ^ sep ^ "ttr" ^ sep ^ (TigerTree.to_string ttr)
+  | Md5Ext md5 ->
+      "urn" ^ sep ^ "sig2dat" ^ sep ^ (Md5Ext.to_base32 md5)
+  | BTUrl url ->
+      "urn" ^ sep ^ "sha1" ^ sep ^ (Sha1.to_string url)
+  | FileTP file ->
+      "urn" ^ sep ^ "filetp" ^ sep ^ (Md4.to_string file)
+  | NoUid -> ""
+
+(*************************************************************************)
+(*                                                                       *)
+(*                        normalize_uids                                 *)
+(*                                                                       *)
+(*************************************************************************)
+
+let normalize_uids uid_list =
+  let l = ref [] in
+  List.iter (fun t ->
+    let uid_type = uid_to_common_uid (Uid.to_uid t) in
+    let _t = Uid.create uid_type in
+    if not (List.mem _t !l) then l := _t :: !l
+  ) uid_list;
+  !l
+
+(*************************************************************************)
+(*                                                                       *)
 (*                        uid_list_to_string                             *)
 (*                                                                       *)
 (*************************************************************************)
@@ -1292,7 +1346,7 @@
 let uid_list_to_string l =
   match l with
       [] -> ""
-    | uid :: _ -> U.simple_utf8_of (Uid.to_string uid)
+    | uid :: _ -> U.simple_utf8_of (ustring_of_uid (Uid.to_uid uid))
 
 (*************************************************************************)
 (*                                                                       *)
@@ -1319,7 +1373,7 @@
     g_shared_size      = si.shared_size;
     g_shared_uploaded  = si.shared_uploaded;
     g_shared_requests  = si.shared_requests;
-    g_shared_uids      = si.shared_uids;
+    g_shared_uids      = normalize_uids si.shared_uids;
     g_shared_last_seen = BasicSocket.current_time ();
   }
 
@@ -1351,7 +1405,7 @@
     g_file_age             = (BasicSocket.last_time () - f.file_age);
     g_file_last_seen       = (BasicSocket.last_time () - f.file_last_seen);
     g_file_priority        = f.file_priority;
-    g_file_uids            = f.file_uids;
+    g_file_uids            = normalize_uids f.file_uids;
 
     g_file_stats           = [];
   }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]