สภาพอากาศ Conky และ Wunderground


0

ฉันกำลังแก้ไขคำถามเพื่อความกระจ่าง ... ฉันขอโทษสำหรับความสับสนใด ๆ ... ไวยากรณ์ของ Conky ได้เปลี่ยนไปเป็นเวอร์ชั่นล่าสุด

ชี้แจงปัญหาของฉัน:

ฉันสร้างไฟล์ xml ที่รับข้อมูลสภาพอากาศจาก Wunderground.com

ฉันต้องการหาวิธีง่ายๆในการดึงข้อมูลเฉพาะออกจากไฟล์ xml เพื่อแสดงใน Conky (รวมถึงไอคอนสภาพอากาศ)

ข้อมูลส่วนใหญ่ที่ฉันพบจนถึงขณะนี้ไม่ได้ทำสิ่งที่ฉันต้องการและฉันไม่สามารถ cobble วิธีการแก้ปัญหาของตัวเองจากสิ่งที่ฉันได้พบเพราะข้อมูลดูเหมือนซับซ้อนโดยไม่จำเป็น ฉันต้องการวิธีที่ใช้ในการไม่ต้องใช้โปรแกรมเพิ่มเติมและ / หรือยิมนาสติกสคริปต์

ตัวอย่าง:

  1. ฉันใช้ "curl -s http://api.wunderground.com/api/ [ / keykey//conditions/q/TX/هmycityเหมือน. xml -o ~ / path / weather.xml" เพื่อสร้างไฟล์ xml ของฉันโดยใช้ Wunderground .com

  2. ภายในไฟล์ xml เป็นเส้นทางไปยังไอคอนสภาพอากาศปัจจุบัน (ให้เราพูดว่า: " http://icons.wxug.com/i/c/k/cloudy.gif ")

  3. ภายในไฟล์ xml เป็นข้อมูลเฉพาะที่ฉันต้องการแสดงเช่นอุณหภูมิปัจจุบัน (ไฟล์ xml แสดง '<' temp_f '>' 68.9 '<' / temp_f '>' "... หมายเหตุ: ฉันใช้ '<' มิฉะนั้นโพสต์ของฉันจะไม่แสดงแท็ก) ดังนั้นฉันต้องการนำ 68.9 และแสดง (หรือปัดเศษเป็น 69)

ในท้ายที่สุดเมื่อใช้ตัวอย่างด้านบน Conky ของฉันจะแสดงไอคอน "Cloudy" และ 69F (หรือ 68.9F) จากนั้นฉันก็สามารถแยกข้อมูลและแสดงข้อมูลอื่น ๆ ในลักษณะเดียวกันได้อย่างง่ายดาย

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือที่คุณสามารถให้ได้


1
เราไม่ทราบจริง ....
Ramhound

โปรดชี้แจงปัญหาเฉพาะของคุณหรือเพิ่มรายละเอียดเพิ่มเติมเพื่อเน้นสิ่งที่คุณต้องการ ตามที่เขียนไว้ในปัจจุบันมันยากที่จะบอกว่าสิ่งที่คุณถาม
Ramhound

ฉันพบคำตอบเพื่อเป็นส่วนหนึ่งของคำถามของฉัน เพื่อดึงข้อมูลเฉพาะที่ฉันต้องการฉันก็ทำดังนี้ขดapi.wunderground.com/api/[key]/conditions/q/TX/[mycity].xml | awk -F '[<|>]' '/ <temp_f> / {พิมพ์ "อุณหภูมิปัจจุบัน:" $ 3} / <windchill_f> / {พิมพ์ "Windchill:" $ 3}'
เคอร์ติส

ตอนนี้ฉันต้องการคำตอบในส่วนอื่น ๆ ของคำถามของฉัน ... ฉันจะได้รับ conky เพื่อแสดงไอคอนสภาพอากาศปัจจุบันจาก URL ที่พบในแท็ก '<icon_url>' URL จะเปลี่ยนเมื่อสภาพอากาศเปลี่ยนแปลง
เคอร์ติส

คำตอบ:


1

ส่วนที่ 1:

เพื่อดึงข้อมูลโดยตรงจากเว็บ url คุณจะใช้คำสั่งต่อไปนี้:

curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'

... หรืออีกวิธีหนึ่งคุณสามารถดึงข้อมูลจากไฟล์ xml ที่ดาวน์โหลดมา:

curl 'file:///home/path/weather.xml' | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'

คุณสามารถแทนที่

'/<temp_f>/' {print "Current Temperature:"$3"°F"}

ด้วยแท็กและข้อมูลอื่น ๆ ที่คุณต้องการแสดง

ส่วนที่ 2:

ในการแตก URL ไอคอนและจากนั้นให้ไอคอนแสดงใน Conky คุณจะต้องแตก URL เป็นไฟล์ดังนี้:

curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<icon_url>/ {print $3}' >~/path/image

จากนั้นคุณต้องดาวน์โหลดไอคอนให้ชื่อสามัญแล้วย้ายไปยังโฟลเดอร์ที่คุณต้องการ:

wget -O weather.gif -i ~/path/image

mv ~/weather.gif ~/path/

สร้างสคริปต์ sh (เราจะเรียกมันว่า "weather.sh") ด้วยขั้นตอนข้างต้นและวางไว้ในตำแหน่งที่คุณต้องการ

จากนั้นคุณจะวางคำสั่งใน ".conkyrc" ของคุณตามบรรทัดของ:

${execi 300 sh ~/path/weather.sh}

${image ~/path/weather.gif -p 10,40 -s 32x32}

ในคำสั่ง "image", "-p" = ตำแหน่งและ "-s" = ขนาดพิกเซลของภาพ เปลี่ยนพิกัดและขนาดให้เหมาะกับวัตถุประสงค์ของคุณ

นี่ควรจะง่ายกว่าสคริปต์พยากรณ์อากาศและอื่น ๆ อีกมากมายที่ฉันได้พบกับ Conky

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.