Ubuntu Türkiye

Yazılım => Uygulama Geliştirme => Konuyu başlatan: mt - 14 Ağustos 2016 - 18:19:32

Başlık: Son iletiler Uygulaması
Gönderen: mt - 14 Ağustos 2016 - 18:19:32
Yeni iletilerden anında haberdar olabilirsiniz. Yada sadece yorum yaptığınız konulardan bildirim alabilirsiniz.
Bildirime tıklayarak ilgili konuyu default olan web tarayıcınızda açabiliyorsunuz.

(https://forum.ubuntu-tr.net/proxy.php?request=http%3A%2F%2Fi.hizliresim.com%2FPQ0zRv.png&hash=e7263d9a39d980db31a538cd688eb2139fff8d1c)

Kurulum:

sudo apt-get install git
cd /home
git clone https://github.com/linuxmt/forum.ubuntu-tr.net.git
cd /home/forum.ubuntu-tr.net
sudo chmod  +x setup.sh
./setup

Bilgisyarınızda birden fazla web tarayıcısı kurulu ise default web tarayıcınızı değiştirmek için:
Sistem Ayarları --> Sistem --> Detaylar

(https://forum.ubuntu-tr.net/proxy.php?request=http%3A%2F%2Fi.hizliresim.com%2Fzn31P4.png&hash=b336bb8b666b57f2af5a40a82290763a5a4aad03)

[eklenti yönetici tarafından silindi]
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: FireSwords - 14 Ağustos 2016 - 20:01:48
Homebrew'den espeak indireyim deneyeceğim.

Edit: OS X kendi TTS motoruyla geliyor. OS X için uyarlayayım.
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: mt - 14 Ağustos 2016 - 20:11:51
.py Dosyasında Ufak Bir DeğişiklikYaptım istersen Yenile.
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: FireSwords - 14 Ağustos 2016 - 20:17:15
Deneme şansım olmadı, çünkü yeni mesaj gelmedi. Umarım çalışıyordur:

Bu arada sistemimde python3 yüklü olduğudan python3 için birkaç değişiklik yaptım

#-*- coding: utf-8 -*-
#!/usr/bin/python3

import urllib.request as urllib
import time
import os
import subprocess

def say(text):
    subprocess.call('say ' + text, shell=True)


i=0
karsilastirma=0
while True:
i+=1
urllib.urlretrieve("https://forum.ubuntu-tr.net/index.php?action=.xml;type=rss","ubuntu")
mesaj = os.stat("ubuntu")
b = int(mesaj.st_size)
time.sleep(3)
if (i == 1):
karsilastirma=b
if (karsilastirma != b):
print("Okunan değerler {} - {} Yeni mesaj".format(b,karsilastirma))
karsilastirma = b
say("Yeni Mesaj")
time.sleep(60)
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: mt - 14 Ağustos 2016 - 20:21:46
Bugün Yazdığım Bir Uygulama Ufak Hatalar Olabiliyor Başka Bir Yöntemle Yazmaya Çalışıcam Eminim Sorun Çıkmayacaktır. UrlLib Default Bir Modül müydü Onu Hatırlamaya Çalışıyorum.
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: FireSwords - 14 Ağustos 2016 - 20:26:08
Alıntı yapılan: mt - 14 Ağustos 2016 - 20:21:46
Bugün Yazdığım Bir Uygulama Ufak Hatalar Olabiliyor Başka Bir Yöntemle Yazmaya Çalışıcam Eminim Sorun Çıkmayacaktır. UrlLib Default Bir Modül müydü Onu Hatırlamaya Çalışıyorum.
Evet Python ile birlikte geliyor.

Denedim ve sorunsuz çalışıyor şu an.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 14 Ağustos 2016 - 20:27:17

Bir de şu çıktıya anlam veremedim:

(https://i.hizliresim.com/aXBpn7.png)
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: egcodes - 14 Ağustos 2016 - 20:30:05
Bende  zamanında benzer bir şey yazmıştım. Ama rss'i kullanmıyor. Direk anasayfasıdaki son mesajlar kısmını parse ediyor. Yeni mesajları ubuntu notify baloon ile bildiriyor.


#!/usr/bin/python
# -*- coding: utf8 -*-

import BeautifulSoup
import os
import time
import urllib2

def getUrl(link):
    try:
        req = urllib2.Request(link, headers={'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11"})
        htmlSource = urllib2.urlopen(req).read()
    except Exception, error:
        print "Hata urllib", error
        return

    try:
        soup = BeautifulSoup.BeautifulSoup(htmlSource)
    except Exception, error:
        print "Hata soup: ", error
        return

    content = soup.findAll(attrs={"id":"ic_recentposts"})[0]

    items = content.findChild('dt').findChildren()
    subject = items[0].text
    fromWho = items[2].text
    toWhere = items[3].text
    tm = content.findChild('dd').text

    return subject, fromWho, toWhere, tm

if __name__ == '__main__':
    tmp = {}
    while True:
        subject, fromWho, toWhere, tm = getUrl("http://forum.ubuntu-tr.net")
        try:
            tmp[tm]
        except:
            tm = tm.replace("'", "''")
            fromWho = fromWho.replace("'", "''")
            toWhere = toWhere.replace("'", "''")
            subject = subject.replace("'", "''")
            command = "notify-send '%s - %s - %s' '%s'" % (tm, fromWho, toWhere, subject)
            print "%s - %s - %s -> %s" % (tm, fromWho, toWhere, subject)
            os.popen(command.encode('utf-8'))
            tmp[tm] = True

        time.sleep(10)

Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: mt - 14 Ağustos 2016 - 20:31:56
@FireSwords Ufak Bir değişklik pass > break olarak değiştir.
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: FireSwords - 14 Ağustos 2016 - 20:35:45
Alıntı yapılan: mt - 14 Ağustos 2016 - 20:31:56
@FireSwords Ufak Bir değişklik pass > break olarak değiştir.
O döngüyü silmiştim çünkü espeak olmadığından işe yaramıyor
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: mt - 14 Ağustos 2016 - 20:40:16
@egcodes Kullandığın Modüllerle İlgili install Komutlarınıda Paylaşırmısın
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: egcodes - 14 Ağustos 2016 - 20:44:55
Ben python modülleri için easy_install kullanıyorum. Ama pip ile yada direk apt-get ile beatifulsoup'u search edip install edebilrsin. Html parse için bir numaralı modüldür zaten python'da çok kullanılır.

easy_install BeautifulSoup


Bu arada python 2.7 ile yazmıştım. 3'de çalışır mı bilmem
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: mt - 14 Ağustos 2016 - 20:48:17
@FireSwords Bu ÇIktıya Anlam Veremedim Demişsin Açlıyayım: O çıktı Okunan İlk Değer İle Son Değeri Gösteriyor. İki Değeri Karşılaştırıp Yeni *bir şeyler Olup Olmadığını Kontrol EDiyorum.
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: FireSwords - 14 Ağustos 2016 - 20:49:36
Alıntı yapılan: egcodes - 14 Ağustos 2016 - 20:44:55
Ben python modülleri için easy_install kullanıyorum. Ama pip ile yada direk apt-get ile beatifulsoup'u search edip install edebilrsin. Html parse için bir numaralı modüldür zaten python'da çok kullanılır.

easy_install BeautifulSoup


Bu arada python 2.7 ile yazmıştım. 3'de çalışır mı bilmem
Belki pip3 gibi easy_install3 vardır? Deneyeyim.
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: FireSwords - 14 Ağustos 2016 - 20:51:49
Anladığım kadarıyla easy_tools python3'te setuptools olmuş.

Edit: Çift gönderi için özür dilerim. Tapatalk'tan gönderince gönderiler birleşmiyormuş.
Başlık: Ynt: Bir Yeni Mesaj (forum-sesliuyari.py)
Gönderen: mt - 14 Ağustos 2016 - 20:56:06
Alıntı yapılan: FireSwords - 14 Ağustos 2016 - 20:51:49
Edit: Çift gönderi için özür dilerim. Tapatalk'tan gönderince gönderiler birleşmiyormuş.

Bende şaşırdım mesajın birleşmesi gerekti :)


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 15 Ağustos 2016 - 17:20:18

Uygulamayı Geliştirmeye Devam Ediyorum Ufak Değişikler Yaptım. En Üstteki Posttan İndirip Denebilirsiniz...
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: mt - 17 Ağustos 2016 - 21:18:30
Uygulama Güncellenmiştir.
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: mt - 24 Ağustos 2016 - 22:38:37
Uygulama Güncellenmiştir.




https://forum.ubuntu-tr.net/index.php?topic=53236.msg601295#msg601295


Başlık: Ynt: Son iletiler Uygulaması
Gönderen: FireSwords - 25 Ağustos 2016 - 17:30:30
Kodlarda birkaç eksik gözüme çarptı:


1- Uygulama aşırı platform bağımlı. Böyle basit bir uygulamanın her platformda sorunsuz çalışmasını tercih ederim.


2- Kodlar çok düzensiz. Okunaklı olmaktan çok uzakta. Kodlar çok iç içe geçmiş.


(https://i.hizliresim.com/PQB0pv.png)
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: mt - 25 Ağustos 2016 - 17:35:55
Hocam python ile yazdığım ilk uygulama python konusunda yeniyim birkaç aydır öğrenmeye çalışıyorum  inanın halen üzerinde düşünüyorum nasıl daha iyi olur diye. Yorumunuz için teşekkürler
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: neynefes - 25 Ağustos 2016 - 18:01:27
Betik nasıl çalışıyor? Hangi aralıklarla kendini güncelliyor? Kurulum ve deneme de herhangi bir sıkıntı yok. Bir kaç öneride bulunmak isterim uygun görürseniz.

1. Baloncuğa tıkladığımda ilgili mesaj tarayıcıda açılsın.
2. Bir süre sonra bu bildirimler kabak tadı vermeye başlıyor. Kapatıp açabilme, sadece cevapladığım mesajların bildirimleri düşmesi gibi seçenekler.
3. Bildirim baloncuğunda sitenin simgesi olsa hiç fena olmaz.
4. Mesaja kim, ne zman cevap verdi vs gibi daha detaylı bilgi..

Bir de prosedür gereği bu uygulamanın ubuntu-tr'ye ait olmadığını dile getirmiş olalım :)
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: mt - 25 Ağustos 2016 - 19:09:57
Alıntı yapılan: neynefes - 25 Ağustos 2016 - 18:01:27

3. Bildirim baloncuğunda sitenin simgesi olsa hiç fena olmaz.


Hocam bu kısmı halettim.
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: mt - 28 Ağustos 2016 - 22:52:02
Kullanıcı sayısının artması durumunda aşırı yüklenmeye sebebiyet verebileceği durumunu gözönünde bulundurarak uygulamayı forumdan çekiyorum.

Saygılar.
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: bugra9 - 28 Ağustos 2016 - 22:57:47
Uygulama zaten kullanıcıların bilgisayarında çalışmıyor mu? Bu durumda kullanıcı sayısı artınca niye aşırı yüklenme olacağını düşünüyorsun?
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: ErtugrulTRN - 31 Mayıs 2018 - 16:41:50
Eline sağlık :3
Başlık: Ynt: Son iletiler Uygulaması
Gönderen: marslı - 31 Mayıs 2018 - 17:28:19
git deposu silinmiş galiba?

Düzenleme: Buradaki (https://forum.ubuntu-tr.net/index.php?topic=53236.msg603058#msg603058) iletiyi atlamışım, pardon :)