خیلی یهویی میخواستم همه عکس های یه کانال تلگرامی رو ذخیره کنم، تعداد عکس ها از ۸۰۰ تا بیشتر بود، حوصله اینم نداشتم که برای این ۸۰۰ عکس چند تا کلیک صرف کنم که ذخیره بشن، با خودم گفتم ممکنه یه راهی ابزاری برای شبیه سازی حرکات ماوس و کیبرد وجود داشته باشه، طبق معمول شروع به جستجو کردم، در نهایت بهترین گزینه های که پیدا کردم ابزار خط فرمانی Xdotool بود، به کمک این ابزار تونستم همه عکس ها رو با کمترین دخالت ممکن توسط خودم ذخیره کنم، در ادامه روند این کار بسیار باحال رو شرح میدم.

در قدم اول Xdotool رو نصب کردم:

sudo apt install xdotool

حالا فرض رو بر این گرفتم که تصویر مورد نظر به صورت تمام صفحه در حال نمایش هست و من دکمه CTRL+S رو شبیه سازی میکنم تا پنجره ذخیره عکس باز بشه:

xdotool key ctrl+s

حالا توی پنجره باز شده روی دکمه Save کلیک میکنم:

xdotool mousemove 1120 736 click 1

این اعدادی که مشاهده میکنید مختصات دکمه Save توی صفحه هست، برای اینکه این مختصات رو بدست بیارید کافیه Terminal رو باز کنید و دستور زیر رو وارد کنید ولی اون رو اجرا نکنید، در حالی که Terminal به اصطلاع On Top هست و پنجره مورد نظر شما پشت اون قرار گرفته نشانه گر ماوس رو در محل مورد نظر قرار بدید و دکمه Enter رو فشار بدید تا دستور بالا اجرا بشه و مختصات اون نقطه به نمایش دربیاد.

xdotool getmouselocation --shell

البته میشد از کلید Enter هم استفاده کرد:

xdotool key Return

آخرین قدم هم این بود که تصویر بعدی رو نمایش بدم، برای این کار دکمه چپ مکان نما رو شبیه سازی کردم تا تصویر بعدی ظاهر بشه:

xdotool key Left

دستورات بالا رو در یک اسکریپت و در حلقه ای که به تعداد عکس ها باید تکرار می‌شد نوشتم، البته برای محکم کاری بین هر دستور ۲ ثانیه وقفه هم قرار دادم.

#!/bin/bash 
sleep 5s
WID=`xdotool search --name "Telegram" | head -1`
xdotool windowfocus $WID
sleep 1s

for i in {1..825}
do
xdotool key ctrl+s
sleep 2s
xdotool mousemove 1120 736 click 1
sleep 2s
xdotool mousemove key Left
sleep 2s
done