ValiDrive: 500 liraya satılan 2TB USB stick vs. şeyleri test etmek için bir yazılım aracı.

https://www.grc.com/validrive.htm

GRC | ValiDrive  

ValiDrive, Fraudulent and Fake Drive Detection
BeğenFavori PaylaşYorum yap

Güzergaha göre hava durumu verecek bir uygulama var mı?
Örnek artvin denizli de 5 günlük hava durumu verecek

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 8 / 9

Yeni araç: https://filesion.com/video-cutter/
Evet, 15 dakikada yaptım. AI çok güzel. 🙂
Tarayıcıda FFmpeg çalıştırıyor.

Video Cutter | Trim Video Online - Filesion

Trim and cut video files directly in your browser without re-encoding. 100% private and fast.
BeğenFavori PaylaşYorum yap
Önceki yorumları gör 14 / 34

https://archive.org/details/telegramdaki-bir-gruptaki-dosyalarin-isim-listesini-alma
gerekli düzenlemeleri notepad ++ ile yapın.Shift sağ klik ile powershell çalıştır. Python komutu ile bu belgeyi çalıstır.

Telegramdaki Bir Gruptaki Dosyaların Isim Listesini Alma : Free Download,...

Türkçe Reklam / Tanıtım Metni Telegram Grup Dosyalarını Anında Listele! – Süper Pratik Python Scripti Telegram'da bir grupta paylaşılan yüzlerce,...
BeğenFavori PaylaşYorum yap
  • DünyayaEcnebi @dunyayaecnebi

    import os
    import sqlite3
    from datetime import datetime, timezone
    import asyncio
    from telethon import TelegramClient
    from telethon.tl.types import DocumentAttributeFilename
    import time

    # Telegram bilgileri
    api_id = 106101
    api_hash = '7b0c7355ceaf469e5402'
    chat_link = 'https://t.me/+lB'

    # Yerel klasör
    YEREL_KLASOR = r"F:\Al1999-2024 part1"

    # Veritabanı dosyası
    DB_DOSYA = 'telegram_dosya_hafiza.db' # İstersen yolunu değiştir

    def veritabani_olustur():
    conn = sqlite3.connect(DB_DOSYA)
    cursor = conn.cursor()
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS dosyalar (
    isim TEXT,
    boyut INTEGER,
    PRIMARY KEY (isim, boyut)
    )
    ''')
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS meta (
    anahtar TEXT PRIMARY KEY,
    deger TEXT
    )
    ''')
    conn.commit()
    conn.close()

    def son_tarama_tarihi_al():
    conn = sqlite3.connect(DB_DOSYA)
    cursor = conn.cursor()
    cursor.execute('SELECT deger FROM meta WHERE anahtar = "son_tarama"')
    sonuc = cursor.fetchone()
    conn.close()
    if sonuc:
    return datetime.fromisoformat(sonuc[0]).replace(tzinfo=timezone.utc)
    else:
    return datetime(2000, 1, 1, tzinfo=timezone.utc)

    def son_tarama_tarihi_kaydet(tarih):
    conn = sqlite3.connect(DB_DOSYA)
    cursor = conn.cursor()
    cursor.execute('INSERT OR REPLACE INTO meta (anahtar, deger) VALUES ("son_tarama", ?)',
    (tarih.isoformat(),))
    conn.commit()
    conn.close()

    def veritabani_kayit_sayisi():
    conn = sqlite3.connect(DB_DOSYA)
    cursor = conn.cursor()
    cursor.execute('SELECT COUNT(*) FROM dosyalar')
    sayi = cursor.fetchone()[0]
    conn.close()
    return sayi

    async def telegram_dosya_hafiza_guncelle(client):
    veritabani_olustur()
    conn = sqlite3.connect(DB_DOSYA)
    cursor = conn.cursor()

    try:
    entity = await client.get_entity(chat_link)
    print(f"Chat bulundu: {entity.title}")
    except Exception as e:
    print(f"Chat bulunamadı! Hata: {e}")
    conn.close()
    return

    baslangic_tarihi = son_tarama_tarihi_al()
    bitis_tarihi = datetime.now(timezone.utc)

    print(f"Sadece {baslangic_tarihi.strftime('%Y-%m-%d')} sonrası yeni dosyalar taranıyor...")

    eklenen_sayisi = 0
    en_son_tarih = baslangic_tarihi

    async for message in client.iter_messages(entity, limit=None):
    if message.date bitis_tarihi:
    continue

    if message.date > en_son_tarih:
    en_son_tarih = message.date

    if message.media and hasattr(message.media, 'document'):
    doc = message.media.document
    file_name = "İsim_Bulunamadı"
    for attr in doc.attributes:
    if isinstance(attr, DocumentAttributeFilename):
    file_name = attr.file_name
    break

    boyut = doc.size

    try:
    cursor.execute('INSERT OR IGNORE INTO dosyalar (isim, boyut) VALUES (?, ?)', (file_name, boyut))
    if cursor.rowcount > 0:
    eklenen_sayisi += 1
    except Exception as e:
    print(f"Ekleme hatası: {e}")

    conn.commit()
    conn.close()

    if eklenen_sayisi > 0:
    print(f"{eklenen_sayisi} yeni dosya hafızaya eklendi.")
    son_tarama_tarihi_kaydet(en_son_tarih)
    print("Son tarama tarihi güncellendi.")
    else:
    print("Yeni dosya bulunamadı.")

    print(f"Toplam hafızada kayıt: {veritabani_kayit_sayisi()}")

    def yerel_dosya_kontrol_et_ve_sil():
    if not os.path.exists(YEREL_KLASOR):
    print(f"Klasör bulunamadı: {YEREL_KLASOR}")
    return

    conn = sqlite3.connect(DB_DOSYA)
    cursor = conn.cursor()

    silinen_sayisi = 0
    for dosya_adi in os.listdir(YEREL_KLASOR):
    dosya_yolu = os.path.join(YEREL_KLASOR, dosya_adi)
    if not os.path.isfile(dosya_yolu):
    continue

    # Sadece .zip dosyalarını kontrol et (istersen kaldırabilirsin)
    if not dosya_adi.lower().endswith('.zip'):
    continue

    boyut = os.path.getsize(dosya_yolu)

    cursor.execute('SELECT 1 FROM dosyalar WHERE isim = ? AND boyut = ?', (dosya_adi, boyut))
    if cursor.fetchone():
    try:
    os.remove(dosya_yolu)
    gb = boyut / (1024**3)
    print(f"Silindi: {dosya_adi} ({gb:.2f} GB)")
    silinen_sayisi += 1
    except Exception as e:
    print(f"Silme hatası ({dosya_adi}): {e}")

    conn.close()
    print(f"\nİşlem tamamlandı. Toplam {silinen_sayisi} dosya otomatik silindi.")

    async def main():
    print("Telegram'a bağlanılıyor...")
    client = TelegramClient('session', api_id, api_hash)
    await client.start()
    print("Bağlantı başarılı!")

    await telegram_dosya_hafiza_guncelle(client)

    while True:
    print("\n" + "="*60)
    print(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - Yerel klasör kontrol ediliyor...")
    yerel_dosya_kontrol_et_ve_sil()
    print("60 saniye bekleniyor...\n")
    time.sleep(60)

    if __name__ == '__main__':
    asyncio.run(main())

  • DünyayaEcnebi @dunyayaecnebi

    import os
    import time
    import asyncio
    import sys
    from dotenv import load_dotenv
    from telethon import TelegramClient
    from telethon.errors import FloodWaitError

    # .env dosyasını yükle
    load_dotenv()

    # Yapılandırma Kontrolü
    try:
    API_ID = int(os.getenv("API_ID"))
    API_HASH = os.getenv("API_HASH")
    BOT_TOKEN = os.getenv("BOT_TOKEN")
    CHAT_ID = int(os.getenv("CHAT_ID"))
    except Exception as e:
    print(f"❌ .env dosyasında hata var veya eksik: {e}")
    input("Kapatmak için Enter'a basın...")
    sys.exit()

    # --- KLASÖR AYARLARI ---
    # ÖNEMLİ: Windows yollarını yazarken r"C:\Klasor" şeklinde 'r' harfi ekleyin
    # veya düz slash "/" kullanın.
    WATCH_DIRS = [".", r"C:\Users\Kullanıcı\Downloads"]
    WATCH_EXT = (".zip", ".rar", ".7z", ".mp4", ".mkv")
    MAX_PENCERE = 2

    semaphore = asyncio.Semaphore(MAX_PENCERE)

    def get_progress_bar(current, total, start_time, file_name):
    elapsed = time.time() - start_time
    if elapsed 15 else file_name
    print(f"\r📤 {short_name} | %{percent:.1f} | {speed:.2f} MB/s", end="")

    async def fast_upload(client, file_path):
    async with semaphore:
    file_name = os.path.basename(file_path)
    start_time = time.time()
    try:
    print(f"\n🚀 Yükleme Başladı: {file_name}")
    await client.send_file(
    CHAT_ID,
    file_path,
    caption=file_name,
    progress_callback=lambda c, t: get_progress_bar(c, t, start_time, file_name),
    part_size_kb=512
    )
    print(f"\n✅ Tamamlandı ve Siliniyor: {file_name}")
    os.remove(file_path)
    except Exception as e:
    print(f"\n❌ Yükleme Hatası ({file_name}): {e}")

    async def watcher():
    print("--- BAĞLANTI KURULUYOR ---")
    client = TelegramClient("speed_session", API_ID, API_HASH)

    try:
    await client.start(bot_token=BOT_TOKEN)
    print("✅ Bot Aktif.")
    except Exception as e:
    print(f"❌ Telegram Bağlantı Hatası: {e}")
    return

    # Geçerli klasörleri ayıkla (Hata almamak için)
    valid_dirs = []
    for d in WATCH_DIRS:
    if os.path.exists(d):
    valid_dirs.append(d)
    print(f"📂 İzleniyor: {os.path.abspath(d)}")
    else:
    print(f"⚠️ UYARI: Klasör bulunamadı, atlanıyor: {d}")

    if not valid_dirs:
    print("❌ İzlenecek hiçbir geçerli klasör bulunamadı!")
    return

    active_tasks = set()

    while True:
    for folder in valid_dirs:
    try:
    files = [
    os.path.join(folder, f) for f in os.listdir(folder)
    if f.endswith(WATCH_EXT) and os.path.isfile(os.path.join(folder, f))
    ]

    for file_path in files:
    if file_path not in active_tasks:
    active_tasks.add(file_path)
    # Dosya yazım kontrolü
    old_size = -1
    while old_size != os.path.getsize(file_path):
    old_size = os.path.getsize(file_path)
    await asyncio.sleep(1)

    task = asyncio.create_task(fast_upload(client, file_path))
    task.add_done_callback(lambda t, fp=file_path: active_tasks.remove(fp))
    except Exception as e:
    pass # Anlık klasör hatalarını görmezden gel

    await asyncio.sleep(3)

    if __name__ == "__main__":
    try:
    asyncio.run(watcher())
    except Exception as e:
    print(f"\n‼️ KRİTİK HATA: {e}")
    finally:
    print("\n--- PROGRAM DURDU ---")
    input("Kapatmak için Enter'a basın...")

  • DünyayaEcnebi @dunyayaecnebi

    ve aynı klasörde txt dosaysından .env dosyası oluştur bilgilerini gir. API_ID=1051
    API_HASH=7b5402
    BOT_TOKEN=81955387E4L5XU
    CHAT_ID=-1002062

Yeni ve güzel bir araç: Btop4win

Linux'daki Top uygulamasının Windows'a uyarlanmış hali.

https://github.com/aristocratos/btop4win

BeğenFavori PaylaşYorum yap

Favori rekoru kıracak o paylaşım.
https://www.youtube.com/watch?v=h-oTopZ7OZY

Windows'taki Tüm Garabetlerden Kurtulun: Winutil Rehberi

Windows 11'i kurduktan sonra sizi karşılayan gereksiz yazılımlardan, sisteminizi kasan telemetri servislerinden ve gizlilik endişelerinden sıkıldıysanız bu k...
BeğenFavori PaylaşYorum yap

Teamviewer'i gittikçe artan sınırlamaları ve öyle bir şey olmadığı halde arada "ticari kullanıyorsun" diye ağlaması nedeniyle bırakmıştım.

Anydesk ile kısa bir aşk yaşadık ama o da çok kısa sürede sınırlamalar falan koymaya başladı, hoş olmadı, bıraktık.

Bir süredir RustDesk ile uğraşıyorum. Biraz kafa karıştırıcı, uğraştırıcı yanları var ama idare ediyor. Açık kaynak ve ücretsiz. Bundan sonra RustDesk bende kalıcı olur gibi.

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 4 / 26

Geçmişteki bütün cep telefonu modellerini görüp maziye gidebileceğiniz mobil telefon müzesi.

https://www.mobilephonemuseum.com/catalogue

Catalogue

We are a not-for-profit entity created to safeguard the rich history and design diversity of mobile devices which have been launched over the last four decades.
BeğenFavori PaylaşYorum yap

Telefondaki galeriyi fotoğrafları buluta değil de bilgisayardaki bir klasörle eşleyen bir program var mı otomatik. Hatta klasöre gelip bunları telefondan kaldır burada kalsın diyebileceğimiz bir opsiyon belki.

BeğenFavori PaylaşYorum yap

Merhaba arkadaşlar.
Normalde Mi 15 Ultra gibi üst seviye bir telefona geçmeyi planlıyordum ama bir-iki yıl süre daha zor gibi. Telefonumun da bazı özellikleri bozuldu. Server kayıtlı Mi 14T ve resmi Honor 200 modelleri radarımda ve hemen hemen aynı fiyattalar. En önem verdiğim konu kamera, özellikle de telefoto kameralar. Sizce hangisini tercih etmeli?

BeğenFavori PaylaşYorum yap