Skip to content

Instantly share code, notes, and snippets.

@berkaycagir
Last active September 7, 2019 14:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save berkaycagir/49ca7466ed2e2729f98b080857508501 to your computer and use it in GitHub Desktop.
Save berkaycagir/49ca7466ed2e2729f98b080857508501 to your computer and use it in GitHub Desktop.
UPS Türkiye pasaport gönderim sorgulayıcı
#!/usr/bin/python
MAIL_FROM = "enter from mail here"
MAIL_FROM_PASSWORD = "enter from mail password here"
MAIL_TO = "enter to mail here"
SMTP_SERVER = "enter smtp server address here"
SMTP_SERVER_PORT = -1 # enter smtp server port here
CONSULATE = "159034 for Istanbul, 159829 for Ankara"
PASSPORT = "enter your passport number here (e.g. U12345678)"
START_DATE = "enter the start date (e.g. 10.8.2019)"
END_DATE = "enter the end date (e.g. 20.8.2019)"
import requests, re, smtplib
from email.mime.text import MIMEText
def sendMail():
msg = MIMEText("vizen cikti!!!!!")
msg['Subject'] = "vizen cikti!!!!"
msg['From'] = 'vize botu <' + MAIL_FROM + '>'
msg['To'] = MAIL_TO
s = smtplib.SMTP(SMTP_SERVER, SMTP_SERVER_PORT)
s.login(MAIL_FROM, MAIL_FROM_PASSWORD)
s.sendmail(MAIL_FROM, [MAIL_TO], msg.as_string())
s.quit()
def main():
url = "http://www.ups.com.tr/PasaportSorgu.aspx"
initial_request = requests.get(url)
m = re.search('\<input type\=\"hidden\" name\=\"__VIEWSTATEGENERATOR\" id\=\"__VIEWSTATEGENERATOR\" value\=\"(\w*)\" \/\>', initial_request.text)
viewstategenerator = m.group(1)
m = re.search('\<input type\=\"hidden\" name\=\"__VIEWSTATE\" id\=\"__VIEWSTATE\" value\=\"(.*)\" \/\>', initial_request.text)
viewstate = m.group(1)
param_dict = {'__VIEWSTATEGENERATOR': viewstategenerator.encode("utf-8"), \
'__VIEWSTATE': viewstate.encode("utf-8"), \
'ctl00_MainContent_ButtonSorgula': "Sorgula", \
'ctl00_MainContent_DropDownListKonsoloslukBilgileri': CONSULATE, \
'ctl00_MainContent_TextBoxPasaportVeyaBasvuruNo': PASSPORT, \
'ctl00_MainContent_DateEditBaslangicTarihi': START_DATE, \
'ctl00_MainContent_DateEditBitisTarihi': END_DATE}
query_request = requests.post(url, data = param_dict, headers = {"Content-Type": "application/x-www-form-urlencoded"}, allow_redirects=True)
if '<script type="text/javascript">alert(' not in query_request.text.encode("utf-8"):
sendMail()
if __name__ == "__main__":
main()
@berkaycagir
Copy link
Author

berkaycagir commented Sep 7, 2019

Hakkında

Bu script, UPS Türkiye'nin pasaport gönderim sayfasını otomatik olarak denetlemek için yazılmıştır.

Gereksinimler

Python 2.7.15+ ile requests, re ve smtplib kütüphaneleri.

Kullanım

Girilmesi gereken bilgiler aşağıdaki gibidir:

  • MAIL_FROM: Mail göndermede kullanılacak hesap.
  • MAIL_FROM_PASSWORD: Mail göndermede kullanılacak hesabın parolası.
  • MAIL_TO: Mail gönderilecek adres.
  • SMTP_SERVER: Mail göndermede kullanılacak hesabın SMTP sunucu adresi.
  • SMTP_SERVER_PORT: Mail göndermede kullanılacak hesabın SMTP sunucu portu.
  • CONSULATE: Sorgu yapılacak konsolosluk. Bu scriptin yazılma zamanında Almanya İstanbul Başkonsolosluğu için 159034, Almanya Büyükelçiliği (Ankara) için 159829 değerlerinin girilmesi gerekmektedir, zaman içerisinde değişkenlik gösterebilir.
  • PASSPORT: Pasaport numarası (ör. U12345678).
  • START_DATE: Başlangıç tarihi (ör. 10.8.2019).
  • END_DATE: Bitiş tarihi (ör. 20.8.2019).

Bu bilgiler girildikten sonra script bir zamanlanmış komut istemcisi ile (ör. GNU/Linux için cron) istenilen aralıklarda çalıştırılmalıdır. Pasaportunuz gönderildiği zaman script size mail atacaktır fakat mail atması otomatik olarak durmayacaktır; kullandığınız zamanlanmış komut istemcisinin ayarlarını düzenleyerek scriptin zamanlı çalışmasını durdurmanız gerekmektedir.

Lisans

Bu script MIT lisansı ile lisanslanmıştır ve kullanımından doğabilecek zararlardan hiçbir mesuliyet kabul edilmemektedir. Riskleri göze alarak kullanınız.

@salihyalcin
Copy link

Hocam. Pasaportunuzu teslim almıştınız siz. Pasaportunuz verilince bu sorgu sayfası düzgün çalışıyor değil mi ?

@berkaycagir
Copy link
Author

Evet, pasaport kargoya verilince normal takip sayfasına yönlendiriyor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment