Skype บันทึกอวตารผู้ติดต่อของฉันใน Linux ได้ที่ไหน


9

ฉันใช้ Skype บน Linux

ฉันจะหารูปภาพที่เก็บไว้โดย skype ของอวตารของผู้ติดต่อของฉันได้ที่ไหน


ฉันไม่มี Linux บนแล็ปท็อปของฉันในตอนนี้เพื่อตรวจสอบ แต่คุณตรวจสอบเนื้อหาไดเรกทอรี ~ / .Skype
kartikmohta

คำตอบ:


5

ฉันต้องการได้รับรูปภาพประจำตัวของ Skype เหล่านั้นด้วยดังนั้นฉันจึงใช้คำตอบของ whitequark ในการสร้างสคริปต์ทุบตีเล็ก ๆ น้อย ๆ ซึ่งทำเช่นนั้น นี่มันคือ:

#! / bin / ทุบตี

ถ้า [\ ($ # -lt 1 \)];
แล้วก็
  echo "การใช้งาน: $ 0 โฟลเดอร์";
  echo "ตำแหน่งของโฟลเดอร์คือรูปแบบ /home/username/.Skype/username";
  ทางออก;
Fi;

สำหรับฉันใน `ls $ 1`;
ทำ
  ถ้า [-f $ 1 / $ i];
  แล้วก็
    #echo "i: $ i";
    Filed = `hexdump -v -e '" "1/1"% 02x "" "' $ 1 / $ i | sed -e 's / ffd8ffe0 / \ nffd8ffe0 / g'`;
    nocc = `echo" $ filtump "| wc -l`; # เหตุการณ์ของ \ n อักขระ หมายถึงว่ามี nocc-1 เกิดขึ้นในคำพูดของเรา
    #echo "nocc: $ nocc";
    ถ้า ["$ nocc" -ge 2];
    แล้วก็
      k = 0;
      old_IFS = $ IFS; #field separator
      ไอเอฟเอ = $ '\ n';
      ชดเชย = 0;
      สำหรับ j ใน $ ฟ้องแล้ว
      ทำ
        w = `echo $ j | ห้องสุขา -m`; # ให้ตัวอักษรนับจริง + 1
        W = $ [W-1];
        ชดเชย = $ [ชดเชย + W];
        #echo "offset: $ offset";
        filename1 = "$ {i} _ $ {k} _notclean.jpg";
        filename2 = "$ {i} _ $ {k} .jpg";
        dd ibs = 1 if = $ 1 / $ i จาก = $ filename1 skip = `echo" $ offset / 2 "| bc` status = noxfer;
        ถ้า [`du $ filename1 | ตัด -f1` -gt 0];
        แล้วก็
          แปลง $ filename1 $ filename2; #convert ใช้เพื่อลบข้อมูลหลังภาพเท่านั้น
        Fi;
        rm $ filename1;
        k = $ [k + 1];
      ทำ;
      ไอเอฟเอ = $ old_IFS;
    Fi;
  Fi;
เสร็จแล้ว

วิธีนี้ใช้ไม่ได้ผลมีอวตารบางรูปที่ไม่พบและแยกรูปภาพที่แตกออก ดูคำตอบของฉันสำหรับโซลูชันที่สะอาดกว่า
Guillaume Brunerie

8

นี่คือสคริปต์ที่สะอาดกว่ามากที่แยกทั้งอวตารที่มีความละเอียดต่ำและสูงจากไฟล์ main.db และบันทึกเป็นไฟล์ที่ตั้งชื่อตามชื่อผู้ใช้ Skype ที่สอดคล้องกัน

คุณจะต้อง 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

นี้ฟอรั่มเกี่ยวกับ Skype เป็นอวตาร: http://forum.skype.com/index.php?showtopic=99471

  • ก่อนอื่นพวกเขาพูดคุยเกี่ยวกับคำสั่งบางอย่างที่ช่วยให้คุณบันทึกอวตารจากแคช Skype ด้วยส่วนต่อประสานสาธารณะผ่านทางมันไม่ได้ทำงานบน Linux ฉันไม่รู้ว่าพวกเขาแก้ไขอินเทอร์เฟซนั้นหรือไม่และนั่นไม่ใช่คำถามของคุณ
  • ประการที่สองหนึ่ง Skype dev กล่าวว่าภาพทั้งหมดจะถูกเก็บไว้ในรูปแบบ JPEG และให้ส่วนหัวเป็นฐานสิบหก ( JFIF) grep'ing hexdump ของไฟล์ Skype ทั้งหมดที่มีfor i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; doneคำสั่งเปิดเผยหลายเหตุการณ์ของส่วนหัวนี้ในไฟล์. Skype / userNNN.dbb โดยที่ NNN เป็นบางหมายเลข ไฟล์นี้มีรูปแบบที่ไม่มีเอกสารกรรมสิทธิ์และอาจเก็บข้อมูลแคชทั้งหมดเกี่ยวกับผู้ใช้ คุณสามารถแตกอวตารของตนเองได้โดยสแกนหาส่วนหัวแล้วคัดลอกทุกอย่างจนจบไฟล์ไปยังไฟล์อื่น โปรแกรมดูรูปภาพทั้งหมดจะข้ามข้อมูลใด ๆ หลังจากตัวรูปภาพเอง (เทคโนโลยี RARJPG อิงตาม) และหากคุณต้องการลบขยะออกคุณสามารถ "แก้ไข" ได้โดยไม่ต้องดัดแปลงเช่นด้วย imagemagick และคำสั่งconvert file.jpg file_clean.jpg. ImageMagick ทำงานตามมุมมองที่อธิบายไว้: มันอ่านภาพข้ามสิ่งที่ตามมาแล้วเขียนเฉพาะภาพเท่านั้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.