स्काइप लिनक्स में मेरे संपर्क के अवतार को कहां बचाता है?


9

मैं लिनक्स पर स्काइप का उपयोग कर रहा हूं।

मुझे अपने संपर्क के अवतारों के स्काइप द्वारा कैश की गई छवियां कहां मिल सकती हैं?


सत्यापित करने के लिए मेरे पास अभी मेरे लैपटॉप पर लिनक्स नहीं है, लेकिन आप ~ / .Skype निर्देशिका सामग्री की जाँच करते हैं।
कार्तिकमोहता

जवाबों:


5

मैं उन स्काइप अवतारों को प्राप्त करना चाहता था, इसलिए मैंने थोड़ी सी बैश स्क्रिप्ट बनाने के लिए व्हाइटवार्क के उत्तर का उपयोग किया जो कि बस यही करता है। यह रहा:

#! / Bin / bash

अगर [\ ($ #-टाइप 1 \)];
फिर
  इको "उपयोग: $ 0 फ़ोल्डर";
  इको "जहां फ़ोल्डर फॉर्म /home/username/.Skype/username" का है;
  बाहर जाएं;
फाई;

में मैं `ls $ 1` के लिए;
करना
  अगर [-f $ 1 / $ i];
  फिर
    # जियो "i: $ i";
    दायर: `हेक्सडम्प -v -ई ''" 1/1 "% 02x" "" $ 1 / $ i | sed -e 's / ffd8ffe0 / \ nffd8ffe0 / g'`;
    nocc = `प्रतिध्वनि" $ दायर " wc -l`; # घटनाएँ \ n वर्ण की हैं। इसका मतलब है कि हमारे शब्द के nocc-1 घटनाएँ हैं
    # एको "नोक: $ नोक";
    अगर ["$ nocc" -ge 2];
    फिर
      कश्मीर = 0;
      old_IFS = $ आईएफएस; # क्षेत्र विभाजक
      आईएफएस = $ '\ n';
      ऑफसेट = 0;
      $ दायर में जम्मू के लिए;
      करना
        w = `प्रतिध्वनि $ j | wc -m`; # वास्तव में लेटरकाउंट + 1 देता है
        w = $ [डब्ल्यू-1];
        ऑफसेट = $ [ऑफसेट + w];
        # ओको "ऑफसेट: $ ऑफसेट";
        filename1 = "$ {मैं} _ $ {k} _notclean.jpg";
        filename2 = "$ {मैं} _ $ {k} .jpg";
        dd ibs = 1 if = $ 1 / $ i of = $ filename1 स्किप = `प्रतिध्वनि" $ ऑफसेट / 2 "| bc` स्टेटस = noxfer;
        अगर [`du $ filename1 | cut -f1` -gt 0];
        फिर
          $ filename1 $ filename2 परिवर्तित करें; #convert वास्तव में केवल छवि के बाद डेटा को निकालने के लिए उपयोग किया जाता है
        फाई;
        rm $ filename1;
        कश्मीर $ = [k + 1];
      किया हुआ;
      आईएफएस = $ old_IFS;
    फाई;
  फाई;
किया हुआ

यह हमेशा काम नहीं करता है, कुछ अवतार हैं जो नहीं पाए जाते हैं और यह कुछ टूटी हुई छवियों को निकालता है। एक क्लीनर समाधान के लिए मेरा जवाब देखें।
गुइल्यूम ब्रूनरी

8

यहाँ एक बहुत ही साफ-सुथरी स्क्रिप्ट है जो मेन-डीब फाइल से कम-डिफ और हाई-डेफ दोनों अवतारों को निकालती है और उन्हें संबंधित स्काइप यूज़रनेम के नाम वाली फाइलों में सहेजती है।

इस स्क्रिप्ट को चलाने के लिए आपको sqlite3 और xxd की आवश्यकता होगी।

Main.db डेटाबेस की सामग्री को समझना काफी आसान है, थोड़ी कल्पना के साथ और भी बहुत कुछ है जो इससे निकाला जा सकता है।

#!/bin/bash

if (( $# != 1 ))
then
    echo "Usage: $0 folder"
    echo "Where folder is of the form /home/username/.Skype/username"
    exit 1
fi

# Magic string used at the beginning of JPEG files
magic=FFD8FFE0

# We read main.db and extract the Skype name, the avatar image and the
# attachments (which often contain a high-def version of the avatar image)
sqlite3 "$1/main.db" "select skypename,hex(avatar_image),hex(profile_attachments) from Contacts;" |\
while read line
do
    IFS='|'
    # We convert the line into an array
    a=($line)
    if [[ -n ${a[1]} ]]  # There is an avatar_image
    then
        # We strip everything before the magic string, convert it back to binary, and save it to a file
        echo $magic${a[1]#*$magic} | xxd -r -p > ${a[0]}_small.jpg
    fi
    if [[ -n ${a[2]} ]]  # There is a profile_attachments
    then
        # Same as above
        echo $magic${a[2]#*$magic} | xxd -r -p > ${a[0]}.jpg
    fi
done

4

यह स्काइप फोरम थ्रेड अवतारों के बारे में है: http://forum.skype.com/index.php?showtopic=99471

  • सबसे पहले, वे कुछ आदेशों पर चर्चा करते हैं जो आपको स्काइप कैश से अवतारों को बचाने की अनुमति देते हैं, इसके साथ सार्वजनिक इंटरफ़ेस यह स्पष्ट रूप से लिनक्स पर काम नहीं करता है। मुझे नहीं पता कि क्या उन्होंने पहले से ही उस इंटरफ़ेस को ठीक किया है, और यह आपके प्रश्न के बारे में नहीं है।
  • दूसरा, एक स्काइप देव ने कहा कि सभी चित्र जेपीईजी प्रारूप में संग्रहीत हैं और हेक्स ( JFIF) में हेडर प्रदान करते हैं । for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; doneकमांड के साथ सभी स्काइप फ़ाइलों के grep'ing hexdump में इस हेडर के कई आवृत्तियों का पता चला है। Skype / userNNN.dbb फाइलें जहां NNN कुछ संख्या है। इस फ़ाइलों में कुछ बिल्कुल अवांछित, मालिकाना प्रारूप है और संभवतः उपयोगकर्ताओं के बारे में सभी कैश्ड जानकारी रख रहे हैं; आप हेडर के लिए स्कैन करके और फिर फ़ाइल के अंत तक दूसरी फ़ाइल तक सब कुछ कॉपी करके खुद अवतार ले सकते हैं। छवि के बाद सभी छवि दर्शक किसी भी डेटा को छोड़ देंगे (एक तकनीक RARJPG पर आधारित है), और यदि आप उनमें से कबाड़ को हटाना चाहते हैं, तो आप इसे इमेजिग्निक और कमांड के साथ उदाहरण के बिना "संशोधित" कर सकते हैं।convert file.jpg file_clean.jpg। ImageMagick वर्णित दर्शक के रूप में व्यवहार करता है: यह छवि को पढ़ता है, जो कुछ भी इसका अनुसरण करता है उसे छोड़ देता है और फिर केवल छवि ही लिखता है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.