Güncelleme yayınlama

Merhabalar,masaüstü uygulamamı bazı kullanıcılara verdim,aktif olarak kullanıyolar…

Lakin daha sonra yaptığım güncellemeleri onlara nasıl ulaştırma ve güncellemenin olduğunu haber etme konusunda…Fikri olan var mı?

teşekkür ederim

Ben şöyle bir yol izliyorum. Betik dosyası GitHub’da duruyor. Programın Hakkında isimli bir menü düğmesi var. O düğmeye tıkladığımızda Güncelleştirmeleri Denetle isimli bir seçenek açılıyor. Kullanıcı bu düğmeye basınca, program GitHub’da bulunan betik dosyasının çiğ halini okuyor ve okunan veriyi bir değişkene kaydediyor, aynı zamanda çalışan programın kodlarını okuyup bir değişkene kaydediyor. Sonra program bu iki değişkenin değerlerini karşılaştırıyor. Eğer aralarında bir fark varsa, güncelleştirme işlemine geçiliyor.

Bu işlemi gerçekleştirmek için kullanıcının Güncelleştirmeleri Denetle tuşuna basması gerekiyor. Ama bu eyleme gerek kalmadan da yeni bir güncelleştirme olduğunun bilgisi kullanıcıya bildirilebilir.

1 Beğeni

uygulamayı açtığı zaman uyarı verebilir mi ?..Güncelleştirme geldi bakınız diye

Öyle yapmak istiyorsanız, yapabilirsiniz tabi.

Nasıl olacağı konusunda fikrin var mı peki?..Uygulama açıldığı anda uyarı gelicek şekilde…

Var evet. Program açılır açılmaz, program GitHub’da tutulan betik dosyasının çiğ halini okur, sonra o anda çalışan programın betik dosyasını okur, okunan veriler değişkenlere kaydedilir, bu değişkenlerin değerleri karşılaştırılır ve eğer değerler farklıysa kullanıcıya yeni bir güncelleştirme olduğu ile ilgili bir uyarı verilir. Kullanıcı dilerse bu güncelleştirmeyi indirir, dilemezse indirmez. Yukarıda anlattığım yola benzer ama ufak farklılıklar var.

1 Beğeni

bu konuyla ilgili bakabileceğim bir kaynak var mı acaba?..
Kendi uygulamamda kullanmak istiyorum

Bahsettiğim ilk yöntemle alakalı bir çalışmam var yani kullanıcı Güncelle tuşuna basarsa çalışan bir güncelleştirme işlemi tanımlı. Diğer yöntemle alakalı bir çalışma yapmadım. Ama bence kendi kodlarınızı yazmanız konuyu öğrenmeniz açısından daha faydalı. Yine de siz bilirsiniz. İsterseniz paylaşabilirim.

Ben kendi kodlarımı nette paylaşamam,çünkü kendi postgre user ve password şiflerimi nette paylaşamam…
Daha efektif kullanbilceğim bir yöntem var mı

Size kodlarınızı paylaşın demedim.

Yo onu kastetmedim…Hani Github’a kaydediyoruz demiştiniz ,kodlarımı paylaşabilceğim bir platform yok…Farklı bir yöntem arayışımdayım sadece

Pardon, doğru haklısınız.

Peki şöyle yapamaz mısınız? Şifrenizi ve kullanıcı adınızı bir text dosyasına yazın. Program da bu dosyadaki verileri okusun. Text dosyasını da .gitignore dosyasına ekleyin. Böylece kimse şifre ve kullanıcı adlarınızı görmez.

1 Beğeni

Söylemiş olduğunuz yöntemle alakalı pek bilgim yok…Olabilir mi sizce?

Neden olmasın?
Örneğin diyelim kullanıcı adı ve şifreniz admin.txt isimli text dosyasında şu şekilde kayıtlı:

user: ali
password: 1234

Programınızda bu veriler kullanılacak değil mi?

with open("admin.txt", "r") as f:
    admin_verileri = [i.split(" ")[1] for i in f.readlines()]
    # admin_verileri[0]: user bilgisini içerir.
    # admin_verileri[1]: şifre bilgisini içerir.
    # Sonra bu verileri istediğiniz şekilde kullanabilirsiniz.

.gitignore dosyasına da aşağıdakini yazarsanız.

admin.txt

.gitignore dosyası adı üzerinde bir dizindeki dosya veya klasörler github’a yüklenirken yoksayılacak dosya ve klasörleri içeren bir metin dosyasıdır, uzantısı yoktur. İsterseniz bütün txt dosyalarını aşağıda gösterildiği gibi yazarak yoksayabilirsiniz

*.txt

Belki diğer arkadaşlar başka yöntemler önerebilirler, isterseniz bekleyin, onların da önerilerini değerlendirin. Sonra karar verirsiniz.

Github da veya herhangi bir sitede uygulamanın sürümünü tutun. Uygulamanız açıldığında bu sürümü çekin. Uygulamanızın o anki sürümüyle karşılaştırın. Eğer farklıysa güncelleme vardır.

1 Beğeni

Zaten kullanıcı adı ve şifreniz kodla birlikte yer almamalı. Daha doğrusu her zaman bir sürüm kontrol sistemi kullanmalısınız ancak kullanıcı adı ve şifrenizi sürüm kontrol sistemine atmamalısınız. Hatta bu bilgiler ortam değişkenlerinden okunmalı. Ayrıca Bitbucket ve GitLab gibi kodunuzu diğerlerinden gizleyen sürüm kontrol yönetim sistemleri de mevcuttur.

basitçe şöyle bir çözüm üretmiştim;

def güncelleme_kontrol():
    # ---------------- Web altında txt içinden bilgi çekmek ------------
    url2 = "http://127.0.0.1:8000/media/deneme.txt"
    try:
        from bs4 import BeautifulSoup
        import urllib.request
        url2_oku = urllib.request.urlopen(url2)
        soup2 = BeautifulSoup(url2_oku, 'html.parser')
        for versiyon_oku in soup2:
            güncel_versiyon = versiyon_oku
            print(güncel_versiyon)
    except urllib.error.URLError: # internet bağlantısı yoksa erör vermesini engelliyor.
        print("Net Yok...")
        pass

Ben lokal server’da bulunan bir text dosyası içine güncel versiyon numarasını yazmıştım. Fonksiyon bunu okumaya yarıyor. Buradan alacağınız veriyi bir değişkene atayarak (güncel_versiyon = 1.0.1 olsun) programınız içindeki versiyon değişkeni ile (örneğin: versiyon = 1.0.0) kıyaslayarak
if güncel_versiyon > versiyon:
programınıza uygun bir uyarı ile kullanıcıya ildirebilirsiniz. tkinter için messagebox.showinfo("Güncelleme", "Güncel versiyon var..") kullanılabilir.

Biraz iptidai olmakla beraber işime yaradı.
Tabii kıyaslanacak versiyon numaraları içindeki noktaları atıp intager’e çevirme işini size bırakıyorum :slight_smile:
iyi çalışmalar dilerim…

1 Beğeni