5-500 EURO

Бот за курсну листу

Гледајући јутрос курс € ради уплате рате кредита преко нета, сине ми сјајна идеја — сервис курсна листа на друштвеној мрежи Twitter.

Од фебруара 2023. године бот Курсна листа доступан је и на Мастодон инстанци https://mas.to/@kurs

Сврха

Могу рећи да је удео у овој идеји имао Миланов чланак „Курс евра – још превараната“.
Наиме, неко се досетио, мада није први, да уз месечну претплату на ваш мобилни претплатнички број доставља СМС у коме примаоца обавештава о сутрашњем курсу еура, и то два пута дневно — први пут до 14:30 и други пут до 18:30.

Да одмах сузбијем теорије завере: на веб страници Народне банке Србије свакодневно се објављује незванични сутрашњи (индикативни) курс динара најкасније до 14:00 сваког радног дана НБС, одн. званични сутрашњи курс динара до 18:00 сваког радног дана НБС. Више информација о индикативном курсу.

Неколико тренутака касније, отворио сам рачун са називом „kurs“ који је доступан на адреси https://twitter.com/kurs .

Kursna lista @ Twitter.com

Чему ово? Окорели твитераши, а и они мање тврдокорни, вероватно могу да претпоставе сврху — сваког дана у одређено време, твитераши који прате Курсну листу, добијају информацију о вредности евра према следећем распореду:

  • у 08:05 сваког дана званични курс — продајну, средњу и куповну вредност евра, долара, швајцарца и фунте;
  • у 14:05 незваничну средњу вредност евра за наредни дан, одн. за понедељак ако је тренутни дан петак, субота или недеља;
  • у 18:05 званичну средњу вредност евра и долара за наредни дан, одн. за понедељак ако је тренутни дан петак, субота или недеља.

Функционалност

У почетку је цео посао радила BASH скрипта kurs.sh (в. 0.3.5) коју сам наменски написао да помоћу cURL преузимала HTML садржај, SED-ом парсирала податке и шаље на Твитер рачун.

У мају 2014. године скрипту сам портовао у PHP и поставио је на RaspberryPi. Податке такође преузима cURL, али парсирање података ради DOMDocument, према дефинисаним интервалима у системском cron-у.

Због потребе да буде на мрежи 24/7 (а у Србији се повремено дешава да напрасно нестане струја или интернет), скрипту сам у октобру 2017. пребацио на веб сервер где хостујем све моје сајтове.

За све сугестије, критике, похвале и слично… оставите коментар.

Дневник измена

  • 1.2.5 (04.02.2023) — рефакторисан изворни кôд и промењено писмо информација на ћирилицу
  • 1.2.4 (03.02.0223) — додата подршка за Мастодон инстанцу @kurs@mas.to
  • 1.2.3 (05.01.2022) — ажурирани индекси за GBP, CHF и USD
  • 1.2.2 (01.01.2022) — прилагођена рутина за званични курс због промене индекса за GBP и USD јер је НБС пре њих додао AED и MKD
  • 1.2.1 (30.01.2022) — прилагођена рутина за индикативни курс због промене локације и структуре на веб страници НБС
  • 1.2.0 (01.12.2021) — поправљено парсирање валута GBP, USD и CHF јер је НБС додао INR валуту
  • 1.1.1 (29.09.2020) — поправљена грешка у парсирању због непостојеће <html> ознаке
  • 1.1.0 (20.05.2020) — рефакторисао изворни кôд да буде компатибилан PSR2 стандарду и имплементирао namespace заједно са осталим Твитер апликацијама
  • 1.0.12 (02.01.2020) — решио проблем са редирекцијом приликом повезивања на сајт НБС – сада користе HTTPS протокол; спојио твитове за оба индикативна курса EUR и USD и један твит, као и званични курс за све четири валуте (EUR, USD, CHF и GBP) и један твит
  • 1.0.11 (05.08.2018) — додао параметар nocache за cURL позив за индикативни курс да бих спречио парсирање кешираног садржаја
  • 1.0.10 (22.02.2018) — поправио индексе за GBP, USD и CHF јер је НБС на дан 1. фебруара 2018 додала још валута (HRK, CZK, HUF и KWD) у табелу стандардног курса zaDevize.faces
  • 1.0.9 (15.12.2016) — додао у парсер унапређено препознавање UTF-8 кодног распореда за наслов стране
  • 1.0.8 (23.09.2016) — додао параметар nocache за форсирано учитавање актуелне странице (заобилажење локалног механизма за кеширање)
  • 1.0.7 (12.12.2015) — стандардизовао изворни кôд, оптимизовао кôд искључивањем непотребних акција, избацио курс за RUB и спојио курс за EUR и USD у један, а CHF и GBP у други твит
  • 1.0.6 (16.01.2015) — синхронизовао парсер са новим изменама у структури НБС табела
  • 1.0.5 (21.12.2014) — решио проблем са латиничним словом „Č“ у облику HTML ентитета Č
  • 1.0.4 (20.12.2014) — додао проверу да се не шаље твит ако је празан услед недоступног сајта НБС
  • 1.0.3 (10.10.2014) — додао руску рубљу (RUB), у складу са актуелним политичким дешавањима
  • 1.0.2 (05.10.2014) — променио редослед слања твитова тако да се EUR шаље последњи да би био први видљив на лајни
  • 1.0.1 (27.05.2014) — преместио скрипту на локални RaspberryPi
  • 1.0.0 (17.05.2014) — портовао скрипту у PHP
  • 0.3.6 (23.01.2013) — додао подршку за SSL
  • 0.3.5 (31.05.2012) — додао заокруживање индикативног курса на 4 децимале
  • 0.3.4 (31.05.2012) — избацио употребу bc
  • 0.3.3 (30.05.2012) — додао извештај о индикативном курсу за USD и унапредио JSON
  • 0.3.2 (30.05.2012) — ускладио са додатим OPG форматом индикативног курса
  • 0.3.1 (25.03.2012) — додао излаз у JSON
  • 0.3.0 (13.11.2011) — додао извештај за USD, CHF и GBP
  • 0.2.3 (26.10.2011) — побољшао BASH синтаксу, додао wget као алтернативу за cURL, заменио fromdos са sed
  • 0.2.2 (03.07.2011) — ускладио са новим форматом индикативног курса
  • 0.2.1 (02.09.2010) — слање статуса са TTYtter и OAuth
  • 0.2.0 (30.07.2010) — прилагодио парсер новом формату URL адреса НБС
  • 0.1.9 (03.08.2009) — променио формат исписа тако да прво исписује курс па тек онда информативни текст
  • 0.1.8 (31.07.2009) — решио проблем претварања формата прибављене датотеке у UNIX за индикативни курс
  • 0.1.7 (29.05.2009) — прилагодио скрипту за рад на веб серверу
  • 0.1.6 (04.12.2008) — прилагодио изворни кôд у складу са POSIX стандардима
  • 0.1.5 (07.11.2008) — поправио кодирање префикса позитивне промене курса и замењен (+0) у (непромењено)
  • 0.1.4 (05.11.2008) — отклонио недостатак код разлике индикативног курса: +.n+0.n
  • 0.1.3 (04.11.2008) — додао префикс за разлику тренутног и индикативног средњег курса EUR (+/-)
  • 0.1.2 (03.11.2008) — додао разлику тренутног и индикативног средњег курса EUR
  • 0.1.1 (01.11.2008) — додао функцију за форматирање излаза на локални хаб
  • 0.1 (31.10.2008) — иницијална јавна верзија са функцијом за слање података на twitter.com/kurs
  • 0.0.1 (31.10.2008) — интерна пробна верзија са могућношћу добијања индикативног средњег курса EUR за радни дан који следи, као и званични куповни, средњи и продајни курс EUR за текући дан

Објављено од стране

Александар

Данијелин супруг, Михаилов и Николин отац. Веб програмер и оснивач TechWebUX.

25 мишљења на „Бот за курсну листу“

  1. Свака част за идеју, поздрављам.

    Ја сам све уплате решио много лакше, има нешто се зове „трајни налог“ :P

  2. @Igor: Могу да додам све валуте које НБС „нуди“, само треба да се јави више људи и то тражи. С тим што за остале валуте нема индикативног курса већ само званичног.

    Тренутно је ово овако оптимално, али ако буде већа потражња, није проблем никакав. Не бих само да претрпавам подацима. Иницијално сам правио заеуро, долар и швајцарски франак, али је у етар отишао само еуро (обзиром да се код нас највише корити :) )

  3. @Vanjezi: Ах, то је најбоље или да изгуглаш готову скрипту која то ради (требало би да има) или да је напишеш сам. Скрипте за курс и време не користе RSS већ жваћу HTML кôд, са RSS-ом је то много лакше јер имаш гомилу класа за разне језике које посао парсирања обављају у лету, а после је подацима из променљивих једнсотавно баратати и слати их на твитер, најлакше преко cURL-а.

  4. @Aleksandar: Verovao ili ne nema na gugleti, missim ima al su predvidjene za blogove, sa ne tako chetim updaejtom sadrzhaja, na svakih 10 min recimo, Jel mozhesh onako grubo da mi kazhesh, kako bih to mogao da odradim, poshto znash da moje mogucjnosti nisu velike :)

  5. @Vanjezi: Рецимо скрипта која узима РСС извор, парсује га, формира твит и шаље преко cURL-а на предвиђени твитер налог. Онда ту скрипту убациш у crontab да се извршава на рецимо 1 минут.

    У зависности који језик изабереш, зависи и које ћеш додатне алатке да користиш. Ако је у питању PHP погледај http://www.webresourcesdepot.com/php-rss-parsers/ и http://www.php.net/curl

  6. Nedavno sam ušao u niche kursnih lista, tj kursa evra pa sam sad baš spazio tvoj twitter profil. Vidim da redovno i aktivno šljaka i dan danas, iako je to sve napravljeno pre nekoliko godina. Takodje sam primetio da imaš i vremensku prognozu na twitteru, sve pohvale za ideje! Ako nije tajna jel bi mogao reći koliko prosečno dnevno ljudi dodje preko twittera za ta 2 profila o kurnoj listi i prognozi vremena? Hvala unapred.

    1. Право да ти кажем, никад нисам погледао нити ме је интересовала та статистика :) Ево сада гледам; број дневних посета на обе странице којима описујем ове сервисе је занемарљиво мало – испод 10. Сервиси раде 5+ година, и то је то.

        1. То заправо зависи од тога ко су пратиоци и какви се твитови сервирају. Пасивни налози (као што су моји сервиси) једноставно не привлаче људе да посете профил, а како линк ака сајту нема у твитовима већ у опису профила, разумљиво је да ће тај линк привући само мали број пратилаца, углавном оних који тек открију или траже нове профиле за праћење.

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *