Python Pydate Modülü ile Versiyon güncelleme

Helmsys

Yazılım Ekibi Kıdemli
16 Mar 2022
1,490
1,649
(Yaptığım proje Windows'a özgüdür. Linux için ayrıca düşünülmedi)
Herkese merhaba. Nasılsınız ? Umarım keyifler yerindedir ve umarım çevrenizde toxic insanlar yoktur. Zira internet ortamında fazlaca var 🙃

Bugün size Python ile .EXE Güncelleme Sistemi adlı açtığım konudan sonra aklıma bir fikir geldi.
Kendi kendime "
Güncelleme yapacak biri neden bu kadar zahmet çeksin ki zaten bir proje yaparken gereğinden fazla efor sarf ediyor" dedim. Bu düşünceyle hareket ederek bir modül oluşturdum.
(Bu arada açıklamasına aldanmayın birkaç şey denerken değiştirmeyi unutmuşum ŞŞşş olur öyle arada)

Oluşturduğum modüle spesifik bir isim haliyle bulamayınca updater yerine pydater dedim.(pytube misali :))
.
.
Güzel iyi hoş isim bulduktan sonra kodlamaya başladım. Bugün haliyle bitip Pypiye yükledim.
Size özelliklerinden ve kullanılabilecek bazı alanlardan bahsediyim ardından kullanışına geçelim.

Özelliklerini kısaca açıklamak gerekirse;
-
Uzun kod yazmaktan kurtarıyor
- anlamsal bir bütünlüğü olan tek bir sınıftan oluşan modül kendisi.
- methodların açıklamaları ile kullanımı daha da kolay kılıyor.
- kendisi bir adet versiyon dosyası oluşturuyor. Oluşturduğu dosyaya sizin eklediğiniz başlangıç sürümü/versiyon numarasını ekliyor.
- Githubda güncel tutulan programınızı/yazılımınızı/dosyasınızı belirlediğiniz ve o doğrultuda formatlanmış uzantı ile indirebiliyorsunuz

Hangi Alanda Kullanılabilir ?
-
Yani hemen hemen bütün alanlarda kullanılabilir diyebilirim.
- Forumda da birçok insan bir program geliştirip onu "v0.1 sürümü" ile belirtip indiren insanların daha sonraki çıkacak versiyonlarını indirmeleri için indiren insanlarla iletişime geçmeli ya da hatırlatma yapmalı ki çıkardığı yeni versiyonunu indirtebilsin. Bu modül bu dertten de kurtarıyor. Yani forumdaki arkadaşlara çok yarayacak diyebilirim.
- Masaüstü programlarınızda işinize yarayabilir(ikinci maddede belirttim gibi)
- Yaptığınız herhangi bir tool'da işe yarayabilir.

Şimdi açıklamalarımın ardından Kullanışını adım adım gösteriyorum
Öncelikle modülü kullanabilmek için terminal ekranımızı açıp
pip install pydater yazalım
Kod:
pip install pydater

Evet modülümüzü yükledik şimdi sizde var olan text editörünüzü ya da kullandığınız IDE yi açın ve yazmaya başlayalım.
Python:
from Pydate import pydate
Diyerek modülümüzü içeri aktarıyoruz.

Bir adet instance/örnekleme (nesne de diyebilirsiniz) oluşturmamız gerekiyor

Python:
from Pydate import pydate
pd = pydate.PyDate()

Pydate Sınıfımız bizden iki adet arguman bekliyor. Biri path(dosya yolu) ikincisi github raw linki.

O halde onanları da yazarak kodumuz şu hale gelsin:
Python:
from Pydate import pydate
raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/guncelleme-sistemi/main/version.json"
klasörüm = f"C:\\Users\\...\\Desktop\\Yeni klasör"
pd = pydate.PyDate(path=klasörüm,rawlink=raw_link)
Dikkat ettiyseniz yalnızca klasör yolunu verdim. Bu klasör içerisindeki herhangi bir dosyayı ya da bir .py dosyasını vermedim. Yalnızca yolu verdim.

Artık sıra dosya oluşturma versiyon belirleme ve dosyanın kontrolüne geldi.

Python:
if pd.create_version_file(0.1):
    print("Güncelleme dosyası oluşturuldu versiyon 0.1 olarak ayarlandı")
else:
    print("Güncelleme dosyası zaten var")
Oluşturulan dosya ".json" dosyasıdır.
Karşımıza create_version_file adında bir method çıktı. Neyin nesidir bu method ?
eğer versiyon dosyanız yoksa
False döndürür ve dosyayı oluşturur. Dosya zaten varsa True döndürür.

float veri tipi dışında başka bir veri tipi girilirse TypeError: Float value is required! Hatası verir.

Şimdi Githubdan yeni bir repo oluşturuyorum(isterseniz halihazırda reponuzu kullanabilirsiniz) ve içerisine "
version.json" bu isimde (bu isim mecburi) bir ".json" dosyası oluşturuyorum.
İçeriğini şöyle yazıyorum:

JSON:
{
    "version" : "0.5"
}
Hatırlarsanız en başta raw_linki adında bir değişkenimiz vardı. İşte bu değişkenimize atanan değer bu .json dosyasının linki idi. Bu linki de şöyle alıyoruz; İlgili repomuza gidip version.json dosyamıza tıklayıp açılan yeni pencerenin sağında bulunan "RAW" butonuna tıklayıp url kısmından kopyalayarak gerçekleştiriyoruz.
.
.
.
Şimdi Kontrol işlemi gerçekleştirelim.

Python:
if pd.isUpdate:
    print("Güncel")
else:
    print("Güncel Değil")
Karşımıza yeni bir özellik çıkıyor. Özellik dememin sebebi gerçekten özellik olması yani bir property. Bu özellik bize ilgili uygulamamızın(kullandığınız uygulamanızın) güncel olup olmadığını kontrol ediyor. Eğer program güncelse True değilse False değeri döndürür.

Güncelliğini anlıyorsak güncelleyebiliriz de. Ama güncellemeden önce son bir işlemimiz bulunuyor. Birşey güncelleyeceksek githubda tuttuğumuz henüz yayınlamadığımız güncel sürüm olan uygulamamızı(yada herhangi bir şey) yüklemek. Bunun için güncel tuttuğunuz herneyse onu indirmek için json dosyasına yaptığımız gibi üzerine tıklayıp ilgili pencere açılınca sağ tarafta bulunan
DOWNLOAD butonun bağlantısını kopyalamak.

O zaman uygulamamızı indirelim:


Python:
if pd.isUpdate:
    print("Güncel")
else:
    print("Güncel Değil")
    pd.downloadLink(url="https://github.com/Arif-Helmsys/guncelleme-sistemi/raw/main/program.exe",extension=".exe")
    pd.writeNewVersion()
Burada karşımıza çıkan downloadLink ve writeNewVersion methodlarını sırayla açıklamak gerekirse;
downloadLink: Aldığı ilk arguman indirme linki oluyor ikinci arguman ise uygulamanın dosyasına bağlı olan uzantısı. Yaptığınız projenizde indirteceğiniz dosyanın uzantısı ne ise ikinci parametreye noktasıyla belirtmelisiniz. eğer yanlış veya olmayan bir uzantı yazarsanız size
TypeError: There is no such extension hatası verecektir.
writeNewVersion: Herhangi bir arguman almaz. Yaptığı özellik, lokalde oluşturulan versiyon numaranızı githubdaki belirlediğiniz versiyon numarasına yükseltir. downloadLink methodu ile kullanılması mantıklı olur.

Son hali:

Python:
from Pydate import pydate
raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/guncelleme-sistemi/main/version.json"
klasörüm = f"C:\\Users\\...\\Desktop\\Yeni klasör"
pd = pydate.PyDate(path=klasörüm,rawlink=raw_link)

if pd.create_version_file(0.1):
    print("oluşturuldu")
else:
    print("zaten vardı")

if pd.isUpdate:
    print("güncel")
else:
    print("güncel değil")
    pd.downloadLink(url="https://github.com/Arif-Helmsys/guncelleme-sistemi/raw/main/program.exe",extension="..exe")
    pd.writeNewVersion()
Bu modül ile kuracağınız algoritmalar sayesinde daha da iyi kullanılabilir!

Sizce ne gibi özellikler eklenebilir ?
Neler değiştirilebilir yazarsanız çok sevinirim.



Github linkini bırakıyorum olurda yıldızlamak istersiniz 🙃
Dilim döndüğünce bilgim yettiğince ve hala geliştirilebilir olduğunu, konumu okudukça şunlar şunlar eklenmeliymiş dediklerimin çıktığını gördüğüm size de anlatmaya ve göstermeye çalıştığım bu konunda sonuna gelmiş bulunuyoruz.
Bir dahaki bilmem ney üzerine olacak konumda görüşmek üzere.

 
Son düzenleme:

Extazİ

Moderatör
20 Haz 2021
2,494
1,462
https://tr.wikipedia.org/wiki/Ekstazi
5kf0ffo.png
Elinize sağlık
 

Helmsys

Yazılım Ekibi Kıdemli
16 Mar 2022
1,490
1,649
Eline sağlık Arif reis
: )
😁 o7
Teşekkür ediyorum.


.

Modül güncellendi.
v0.2

Konsola
Kod:
pip install pydater==0.2 --upgrade
yazarak güncelleyebilirsiniz.

Eklenenler:
downloaded_name
adında bir property eklendi. Bununla belirlenen isimde ve uzantıda programınızı veya günlleyeceğiniz her ney ise yazarak sağlayabilirsiniz.
Örnek kullanım:
pd.downloaded_name = "program.exe" veya pd.downloaded_name = "program.py" ne yapacağınız tamamen size kalmış. Fakat uzantısını belirtmek zorundasınız

openNewVersion adında bir method eklendi. İndirilen dosyayı 'Installed' adında bir klasör oluşturur ve klasörün içerisine belirtilen adda belirlenen şeyi indirir. version.json daki sürümü githubdaki sürümünüze yükseltir. İndirileni açar.

Kaldırılan:
writeNewVersion
adında bir method kaldırıldı.

 

JohnWick51

Uzman üye
20 Mar 2022
1,866
770
28
(Yaptığım proje Windows'a özgüdür. Linux için ayrıca düşünülmedi)
Herkese merhaba. Nasılsınız ? Umarım keyifler yerindedir ve umarım çevrenizde toxic insanlar yoktur. Zira internet ortamında fazlaca var 🙃

Bugün size Python ile .EXE Güncelleme Sistemi adlı açtığım konudan sonra aklıma bir fikir geldi.
Kendi kendime "
Güncelleme yapacak biri neden bu kadar zahmet çeksin ki zaten bir proje yaparken gereğinden fazla efor sarf ediyor" dedim. Bu düşünceyle hareket ederek bir modül oluşturdum.
(Bu arada açıklamasına aldanmayın birkaç şey denerken değiştirmeyi unutmuşum ŞŞşş olur öyle arada)

Oluşturduğum modüle spesifik bir isim haliyle bulamayınca updater yerine pydater dedim.(pytube misali :))
.
.
Güzel iyi hoş isim bulduktan sonra kodlamaya başladım. Bugün haliyle bitip Pypiye yükledim.
Size özelliklerinden ve kullanılabilecek bazı alanlardan bahsediyim ardından kullanışına geçelim.

Özelliklerini kısaca açıklamak gerekirse;
-
Uzun kod yazmaktan kurtarıyor
- anlamsal bir bütünlüğü olan tek bir sınıftan oluşan modül kendisi.
- methodların açıklamaları ile kullanımı daha da kolay kılıyor.
- kendisi bir adet versiyon dosyası oluşturuyor. Oluşturduğu dosyaya sizin eklediğiniz başlangıç sürümü/versiyon numarasını ekliyor.
- Githubda güncel tutulan programınızı/yazılımınızı/dosyasınızı belirlediğiniz ve o doğrultuda formatlanmış uzantı ile indirebiliyorsunuz

Hangi Alanda Kullanılabilir ?
-
Yani hemen hemen bütün alanlarda kullanılabilir diyebilirim.
- Forumda da birçok insan bir program geliştirip onu "v0.1 sürümü" ile belirtip indiren insanların daha sonraki çıkacak versiyonlarını indirmeleri için indiren insanlarla iletişime geçmeli ya da hatırlatma yapmalı ki çıkardığı yeni versiyonunu indirtebilsin. Bu modül bu dertten de kurtarıyor. Yani forumdaki arkadaşlara çok yarayacak diyebilirim.
- Masaüstü programlarınızda işinize yarayabilir(ikinci maddede belirttim gibi)
- Yaptığınız herhangi bir tool'da işe yarayabilir.

Şimdi açıklamalarımın ardından Kullanışını adım adım gösteriyorum
Öncelikle modülü kullanabilmek için terminal ekranımızı açıp
pip install pydater yazalım
Kod:
pip install pydater

Evet modülümüzü yükledik şimdi sizde var olan text editörünüzü ya da kullandığınız IDE yi açın ve yazmaya başlayalım.
Python:
from Pydate import pydate
Diyerek modülümüzü içeri aktarıyoruz.

Bir adet instance/örnekleme (nesne de diyebilirsiniz) oluşturmamız gerekiyor

Python:
from Pydate import pydate
pd = pydate.PyDate()

Pydate Sınıfımız bizden iki adet arguman bekliyor. Biri path(dosya yolu) ikincisi github raw linki.

O halde onanları da yazarak kodumuz şu hale gelsin:
Python:
from Pydate import pydate
raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/guncelleme-sistemi/main/version.json"
klasörüm = f"C:\\Users\\...\\Desktop\\Yeni klasör"
pd = pydate.PyDate(path=klasörüm,rawlink=raw_link)
Dikkat ettiyseniz yalnızca klasör yolunu verdim. Bu klasör içerisindeki herhangi bir dosyayı ya da bir .py dosyasını vermedim. Yalnızca yolu verdim.

Artık sıra dosya oluşturma versiyon belirleme ve dosyanın kontrolüne geldi.

Python:
if pd.create_version_file(0.1):
    print("Güncelleme dosyası oluşturuldu versiyon 0.1 olarak ayarlandı")
else:
    print("Güncelleme dosyası zaten var")
Oluşturulan dosya ".json" dosyasıdır.
Karşımıza create_version_file adında bir method çıktı. Neyin nesidir bu method ?
eğer versiyon dosyanız yoksa
False döndürür ve dosyayı oluşturur. Dosya zaten varsa True döndürür.

float veri tipi dışında başka bir veri tipi girilirse TypeError: Float value is required! Hatası verir.

Şimdi Githubdan yeni bir repo oluşturuyorum(isterseniz halihazırda reponuzu kullanabilirsiniz) ve içerisine "
version.json" bu isimde (bu isim mecburi) bir ".json" dosyası oluşturuyorum.
İçeriğini şöyle yazıyorum:

JSON:
{
    "version" : "0.5"
}
Hatırlarsanız en başta raw_linki adında bir değişkenimiz vardı. İşte bu değişkenimize atanan değer bu .json dosyasının linki idi. Bu linki de şöyle alıyoruz; İlgili repomuza gidip version.json dosyamıza tıklayıp açılan yeni pencerenin sağında bulunan "RAW" butonuna tıklayıp url kısmından kopyalayarak gerçekleştiriyoruz.
.
.
.
Şimdi Kontrol işlemi gerçekleştirelim.

Python:
if pd.isUpdate:
    print("Güncel")
else:
    print("Güncel Değil")
Karşımıza yeni bir özellik çıkıyor. Özellik dememin sebebi gerçekten özellik olması yani bir property. Bu özellik bize ilgili uygulamamızın(kullandığınız uygulamanızın) güncel olup olmadığını kontrol ediyor. Eğer program güncelse True değilse False değeri döndürür.

Güncelliğini anlıyorsak güncelleyebiliriz de. Ama güncellemeden önce son bir işlemimiz bulunuyor. Birşey güncelleyeceksek githubda tuttuğumuz henüz yayınlamadığımız güncel sürüm olan uygulamamızı(yada herhangi bir şey) yüklemek. Bunun için güncel tuttuğunuz herneyse onu indirmek için json dosyasına yaptığımız gibi üzerine tıklayıp ilgili pencere açılınca sağ tarafta bulunan
DOWNLOAD butonun bağlantısını kopyalamak.

O zaman uygulamamızı indirelim:


Python:
if pd.isUpdate:
    print("Güncel")
else:
    print("Güncel Değil")
    pd.downloadLink(url="https://github.com/Arif-Helmsys/guncelleme-sistemi/raw/main/program.exe",extension=".exe")
    pd.writeNewVersion()
Burada karşımıza çıkan downloadLink ve writeNewVersion methodlarını sırayla açıklamak gerekirse;
downloadLink: Aldığı ilk arguman indirme linki oluyor ikinci arguman ise uygulamanın dosyasına bağlı olan uzantısı. Yaptığınız projenizde indirteceğiniz dosyanın uzantısı ne ise ikinci parametreye noktasıyla belirtmelisiniz. eğer yanlış veya olmayan bir uzantı yazarsanız size
TypeError: There is no such extension hatası verecektir.
writeNewVersion: Herhangi bir arguman almaz. Yaptığı özellik, lokalde oluşturulan versiyon numaranızı githubdaki belirlediğiniz versiyon numarasına yükseltir. downloadLink methodu ile kullanılması mantıklı olur.

Son hali:

Python:
from Pydate import pydate
raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/guncelleme-sistemi/main/version.json"
klasörüm = f"C:\\Users\\...\\Desktop\\Yeni klasör"
pd = pydate.PyDate(path=klasörüm,rawlink=raw_link)

if pd.create_version_file(0.1):
    print("oluşturuldu")
else:
    print("zaten vardı")

if pd.isUpdate:
    print("güncel")
else:
    print("güncel değil")
    pd.downloadLink(url="https://github.com/Arif-Helmsys/guncelleme-sistemi/raw/main/program.exe",extension="..exe")
    pd.writeNewVersion()
Bu modül ile kuracağınız algoritmalar sayesinde daha da iyi kullanılabilir!

Sizce ne gibi özellikler eklenebilir ?
Neler değiştirilebilir yazarsanız çok sevinirim.



Github linkini bırakıyorum olurda yıldızlamak istersiniz 🙃
Dilim döndüğünce bilgim yettiğince ve hala geliştirilebilir olduğunu, konumu okudukça şunlar şunlar eklenmeliymiş dediklerimin çıktığını gördüğüm size de anlatmaya ve göstermeye çalıştığım bu konunda sonuna gelmiş bulunuyoruz.
Bir dahaki bilmem ney üzerine olacak konumda görüşmek üzere.

Ellerine saglik
 

Helmsys

Yazılım Ekibi Kıdemli
16 Mar 2022
1,490
1,649
Modül güncellendi.
v1.0
Konsola
Kod:
pip install pydater==1.0.1 --upgrade
Yazarak güncelleyebilirsiniz.

Eklenenler:
readNewVersion
adında bir property eklendi. Kendisi lokalde oluşturulan versiyonun sürümünü döndürür
saveNewVersion adında bir method eklendi. Kendisi bir adet parametre alır. Parametre adı open_. Default değeri True dur. True ise Installed adında bir dosya oluşturur ve içerisine uygulamayı indirir. Diğer propertyler ile kullanılmalıdır. False olarak ayarlarsanız yalnızca lokaldeki versiyonun numarasını githubdaki versiyonunuza yükseltir

Kaldırılan:
openNewVersion adında bir method kaldırıldı.

 
Son düzenleme:

K3D

Katılımcı Üye
1 Mar 2021
629
555
30
root
Lanet olası, seviyorum seni. Tekrardan güzel bir konu. Eline emeğine sağlık. Eminim ki güncellemeler ile çok daha iyisi olacaktır. Başarılar.
 
30 May 2022
51
19
(Yaptığım proje Windows'a özgüdür. Linux için ayrıca düşünülmedi)
Herkese merhaba. Nasılsınız ? Umarım keyifler yerindedir ve umarım çevrenizde toxic insanlar yoktur. Zira internet ortamında fazlaca var 🙃

Bugün size Python ile .EXE Güncelleme Sistemi adlı açtığım konudan sonra aklıma bir fikir geldi.
Kendi kendime "
Güncelleme yapacak biri neden bu kadar zahmet çeksin ki zaten bir proje yaparken gereğinden fazla efor sarf ediyor" dedim. Bu düşünceyle hareket ederek bir modül oluşturdum.
(Bu arada açıklamasına aldanmayın birkaç şey denerken değiştirmeyi unutmuşum ŞŞşş olur öyle arada)

Oluşturduğum modüle spesifik bir isim haliyle bulamayınca updater yerine pydater dedim.(pytube misali :))
.
.
Güzel iyi hoş isim bulduktan sonra kodlamaya başladım. Bugün haliyle bitip Pypiye yükledim.
Size özelliklerinden ve kullanılabilecek bazı alanlardan bahsediyim ardından kullanışına geçelim.

Özelliklerini kısaca açıklamak gerekirse;
-
Uzun kod yazmaktan kurtarıyor
- anlamsal bir bütünlüğü olan tek bir sınıftan oluşan modül kendisi.
- methodların açıklamaları ile kullanımı daha da kolay kılıyor.
- kendisi bir adet versiyon dosyası oluşturuyor. Oluşturduğu dosyaya sizin eklediğiniz başlangıç sürümü/versiyon numarasını ekliyor.
- Githubda güncel tutulan programınızı/yazılımınızı/dosyasınızı belirlediğiniz ve o doğrultuda formatlanmış uzantı ile indirebiliyorsunuz

Hangi Alanda Kullanılabilir ?
-
Yani hemen hemen bütün alanlarda kullanılabilir diyebilirim.
- Forumda da birçok insan bir program geliştirip onu "v0.1 sürümü" ile belirtip indiren insanların daha sonraki çıkacak versiyonlarını indirmeleri için indiren insanlarla iletişime geçmeli ya da hatırlatma yapmalı ki çıkardığı yeni versiyonunu indirtebilsin. Bu modül bu dertten de kurtarıyor. Yani forumdaki arkadaşlara çok yarayacak diyebilirim.
- Masaüstü programlarınızda işinize yarayabilir(ikinci maddede belirttim gibi)
- Yaptığınız herhangi bir tool'da işe yarayabilir.

Şimdi açıklamalarımın ardından Kullanışını adım adım gösteriyorum
Öncelikle modülü kullanabilmek için terminal ekranımızı açıp
pip install pydater yazalım
Kod:
pip install pydater

Evet modülümüzü yükledik şimdi sizde var olan text editörünüzü ya da kullandığınız IDE yi açın ve yazmaya başlayalım.
Python:
from Pydate import pydate
Diyerek modülümüzü içeri aktarıyoruz.

Bir adet instance/örnekleme (nesne de diyebilirsiniz) oluşturmamız gerekiyor

Python:
from Pydate import pydate
pd = pydate.PyDate()

Pydate Sınıfımız bizden iki adet arguman bekliyor. Biri path(dosya yolu) ikincisi github raw linki.

O halde onanları da yazarak kodumuz şu hale gelsin:
Python:
from Pydate import pydate
raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/guncelleme-sistemi/main/version.json"
klasörüm = f"C:\\Users\\...\\Desktop\\Yeni klasör"
pd = pydate.PyDate(path=klasörüm,rawlink=raw_link)
Dikkat ettiyseniz yalnızca klasör yolunu verdim. Bu klasör içerisindeki herhangi bir dosyayı ya da bir .py dosyasını vermedim. Yalnızca yolu verdim.

Artık sıra dosya oluşturma versiyon belirleme ve dosyanın kontrolüne geldi.

Python:
if pd.create_version_file(0.1):
    print("Güncelleme dosyası oluşturuldu versiyon 0.1 olarak ayarlandı")
else:
    print("Güncelleme dosyası zaten var")
Oluşturulan dosya ".json" dosyasıdır.
Karşımıza create_version_file adında bir method çıktı. Neyin nesidir bu method ?
eğer versiyon dosyanız yoksa
False döndürür ve dosyayı oluşturur. Dosya zaten varsa True döndürür.

float veri tipi dışında başka bir veri tipi girilirse TypeError: Float value is required! Hatası verir.

Şimdi Githubdan yeni bir repo oluşturuyorum(isterseniz halihazırda reponuzu kullanabilirsiniz) ve içerisine "
version.json" bu isimde (bu isim mecburi) bir ".json" dosyası oluşturuyorum.
İçeriğini şöyle yazıyorum:

JSON:
{
    "version" : "0.5"
}
Hatırlarsanız en başta raw_linki adında bir değişkenimiz vardı. İşte bu değişkenimize atanan değer bu .json dosyasının linki idi. Bu linki de şöyle alıyoruz; İlgili repomuza gidip version.json dosyamıza tıklayıp açılan yeni pencerenin sağında bulunan "RAW" butonuna tıklayıp url kısmından kopyalayarak gerçekleştiriyoruz.
.
.
.
Şimdi Kontrol işlemi gerçekleştirelim.

Python:
if pd.isUpdate:
    print("Güncel")
else:
    print("Güncel Değil")
Karşımıza yeni bir özellik çıkıyor. Özellik dememin sebebi gerçekten özellik olması yani bir property. Bu özellik bize ilgili uygulamamızın(kullandığınız uygulamanızın) güncel olup olmadığını kontrol ediyor. Eğer program güncelse True değilse False değeri döndürür.

Güncelliğini anlıyorsak güncelleyebiliriz de. Ama güncellemeden önce son bir işlemimiz bulunuyor. Birşey güncelleyeceksek githubda tuttuğumuz henüz yayınlamadığımız güncel sürüm olan uygulamamızı(yada herhangi bir şey) yüklemek. Bunun için güncel tuttuğunuz herneyse onu indirmek için json dosyasına yaptığımız gibi üzerine tıklayıp ilgili pencere açılınca sağ tarafta bulunan
DOWNLOAD butonun bağlantısını kopyalamak.

O zaman uygulamamızı indirelim:


Python:
if pd.isUpdate:
    print("Güncel")
else:
    print("Güncel Değil")
    pd.downloadLink(url="https://github.com/Arif-Helmsys/guncelleme-sistemi/raw/main/program.exe",extension=".exe")
    pd.writeNewVersion()
Burada karşımıza çıkan downloadLink ve writeNewVersion methodlarını sırayla açıklamak gerekirse;
downloadLink: Aldığı ilk arguman indirme linki oluyor ikinci arguman ise uygulamanın dosyasına bağlı olan uzantısı. Yaptığınız projenizde indirteceğiniz dosyanın uzantısı ne ise ikinci parametreye noktasıyla belirtmelisiniz. eğer yanlış veya olmayan bir uzantı yazarsanız size
TypeError: There is no such extension hatası verecektir.
writeNewVersion: Herhangi bir arguman almaz. Yaptığı özellik, lokalde oluşturulan versiyon numaranızı githubdaki belirlediğiniz versiyon numarasına yükseltir. downloadLink methodu ile kullanılması mantıklı olur.

Son hali:

Python:
from Pydate import pydate
raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/guncelleme-sistemi/main/version.json"
klasörüm = f"C:\\Users\\...\\Desktop\\Yeni klasör"
pd = pydate.PyDate(path=klasörüm,rawlink=raw_link)

if pd.create_version_file(0.1):
    print("oluşturuldu")
else:
    print("zaten vardı")

if pd.isUpdate:
    print("güncel")
else:
    print("güncel değil")
    pd.downloadLink(url="https://github.com/Arif-Helmsys/guncelleme-sistemi/raw/main/program.exe",extension="..exe")
    pd.writeNewVersion()
Bu modül ile kuracağınız algoritmalar sayesinde daha da iyi kullanılabilir!

Sizce ne gibi özellikler eklenebilir ?
Neler değiştirilebilir yazarsanız çok sevinirim.



Github linkini bırakıyorum olurda yıldızlamak istersiniz 🙃
Dilim döndüğünce bilgim yettiğince ve hala geliştirilebilir olduğunu, konumu okudukça şunlar şunlar eklenmeliymiş dediklerimin çıktığını gördüğüm size de anlatmaya ve göstermeye çalıştığım bu konunda sonuna gelmiş bulunuyoruz.
Bir dahaki bilmem ney üzerine olacak konumda görüşmek üzere.

ellerine sağlık. güzel çalışma olmuş emek verilmiş
 

Helmsys

Yazılım Ekibi Kıdemli
16 Mar 2022
1,490
1,649
Modül güncellendi.
v1.0.5
Konsola
Kod:
pip install pydater==1.0.5 --upgrade
Yazarak güncelleyebilirsiniz.

Eklenenler:
scriptUpdate adında bir method eklendi. Ana scriptiniz github'da tuttuğunuz mevcut script dosyasıyla karşılaştırır Ana scriptiniz github'da güncellediğiniz ile aynı değilse, onu günceller. iki adet parametre alır. Biri script_raw_link diğeri myscript. Ana scriptiniz güncelse True değilse False döndürür.
script_raw_link:
Githubda tuttuğunuz scriptinizin raw linkini arguman olarak vermelisiniz.
örn: https://raw.githubusercontent.com/Arif-Helmsys/test/main/deneme.py

myscript:
güncelleyeceğiniz script dosyasının adı. (.py olmadan)
örn: program, hesap_makinesi, ...

Pydate sınıfına yeni bir parametre eklendi. Bu parametrenin varsayılan değeri False'tur. Eğer True yapılırsa üstteki methodu kullanabilirsiniz. Eğer False olarak kullanmaya çalışırsanız LogicError hatası döndürür.

Örnek kullanım:
Python:
from Pydate import PyDate

path = r"C:\Users\..\myfolder" # güncelleyeceğimiz script dosyasının yolu
pd = Pydate(path=path,isScript=True)

script_raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/test/main/deneme.py" # githubda güncel tuttuğum scriptimiz
pd.scriptUpdate(script_raw_link,myscript="hesap_makinesi") # güncelleyeceğimiz scriptimizin adını "mysript" parametresine yazıyoruz

Gerçekten kullanılmış bir projede görmek için:
.
.
.
 

TheSadError

Katılımcı Üye
28 May 2022
388
267
...
Modül güncellendi.
v1.0.5
Konsola
Kod:
pip install pydater==1.0.5 --upgrade
Yazarak güncelleyebilirsiniz.

Eklenenler:
scriptUpdate adında bir method eklendi. Ana scriptiniz github'da tuttuğunuz mevcut script dosyasıyla karşılaştırır Ana scriptiniz github'da güncellediğiniz ile aynı değilse, onu günceller. iki adet parametre alır. Biri script_raw_link diğeri myscript. Ana scriptiniz güncelse True değilse False döndürür.
script_raw_link:
Githubda tuttuğunuz scriptinizin raw linkini arguman olarak vermelisiniz.
örn: https://raw.githubusercontent.com/Arif-Helmsys/test/main/deneme.py

myscript:
güncelleyeceğiniz script dosyasının adı. (.py olmadan)
örn: program, hesap_makinesi, ...

Pydate sınıfına yeni bir parametre eklendi. Bu parametrenin varsayılan değeri False'tur. Eğer True yapılırsa üstteki methodu kullanabilirsiniz. Eğer False olarak kullanmaya çalışırsanız LogicError hatası döndürür.

Örnek kullanım:
Python:
from Pydate import PyDate

path = r"C:\Users\..\myfolder" # güncelleyeceğimiz script dosyasının yolu
pd = Pydate(path=path,isScript=True)

script_raw_link = "https://raw.githubusercontent.com/Arif-Helmsys/test/main/deneme.py" # githubda güncel tuttuğum scriptimiz
pd.scriptUpdate(script_raw_link,myscript="hesap_makinesi") # güncelleyeceğimiz scriptimizin adını "mysript" parametresine yazıyoruz

Gerçekten kullanılmış bir projede görmek için:
.
.
.
abi şuan denemedim ama githuba dosya ekleyince deniyeceğim. Kullanışlı birşey.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.