Skip to main content

Library of special mission and encrypted code

Project description

Pustaka Python norsodikin

Versi PyPI Lisensi: MIT

Selamat datang di norsodikin, sebuah koleksi modul Python serbaguna yang dirancang untuk mempermudah berbagai tugas, mulai dari manajemen server, enkripsi data, hingga pembuatan bot Telegram yang canggih.

Fitur Unggulan: Pustaka ini terintegrasi penuh dengan Pyrogram. Semua fungsionalitas dapat diakses secara intuitif melalui client.ns, membuat kode bot Anda lebih bersih dan rapi.

Instalasi

Untuk menginstal pustaka ini, cukup jalankan perintah berikut di terminal Anda:

pip install norsodikin pyrogram 

Pastikan juga semua dependensi dari file requirements.txt sudah terpasang jika Anda menginstal dari source code.

Cara Penggunaan Terintegrasi dengan Pyrogram

Cukup dengan mengimpor nsdev, semua fungsionalitas akan otomatis "melekat" pada objek client Pyrogram Anda melalui namespace ns.

Struktur Dasar:

import pyrogram
import nsdev  # Mengaktifkan integrasi .ns

# Asumsikan 'client' adalah instance dari pyrogram.Client
# client = pyrogram.Client(...)

# Sekarang Anda bisa mengakses semua modul:
# client.ns.log.info("Ini adalah logger.")
# db = client.ns.db(storage_type="local")
# ...dan seterusnya

Berikut adalah panduan lengkap untuk setiap modul yang tersedia di dalam client.ns.


1. nsdev.addUser - Manajemen Pengguna SSH

Sangat berguna untuk mengelola pengguna di server Linux. Dengan client.ns.user, Anda bisa menambah dan menghapus pengguna SSH, lalu mengirim detailnya langsung ke Telegram.

Cara Penggunaan:

# Inisialisasi dengan token bot Telegram dan chat ID tujuan
# (Token & ID di bawah ini hanya contoh, ganti dengan milikmu)
manager = client.ns.user(bot_token="TOKEN_BOT_ANDA", chat_id=ID_CHAT_ANDA)

# 1. Menambahkan pengguna baru dengan username & password acak
print("Menambahkan pengguna baru...")
manager.add_user()
# Info login akan otomatis dikirim ke Telegram

# 2. Menambahkan pengguna baru dengan username & password spesifik
print("Menambahkan pengguna 'budi'...")
manager.add_user(ssh_username="budi", ssh_password="password123")

# 3. Menghapus pengguna
print("Menghapus pengguna 'budi'...")
manager.delete_user(ssh_username="budi")

Catatan: Skrip ini memerlukan hak akses sudo untuk menjalankan adduser dan deluser.


2. nsdev.argument - Asisten Argumen Pyrogram

Kumpulan fungsi praktis untuk mem-parsing pesan, mendapatkan info pengguna, dan memeriksa status admin, kini tersedia langsung di client.ns.arg.

Cara Penggunaan (dalam handler Pyrogram):

# Misal pesan yang diterima: /kick @username alasannya
# Atau membalas pesan seseorang dengan: /kick alasannya

# Mendapatkan user ID dan alasan dari sebuah pesan
user_id, reason = await client.ns.arg.getReasonAndId(message)
print(f"User ID: {user_id}, Alasan: {reason}")

# Mendapatkan teks dari pesan (argumen setelah command)
query = client.ns.arg.getMessage(message, is_arg=True)
print(f"Query: {query}")

# Membuat tag mention HTML untuk pengguna
me = await client.get_me()
mention = client.ns.arg.getMention(me) # -> <a href='tg://user?id=...'>Nama Depan</a>
print(mention)

# Cek apakah pengguna adalah admin
is_admin = await client.ns.arg.getAdmin(message)
print(f"Apakah user seorang admin? {is_admin}")

3. nsdev.bing - Pembuat Gambar AI (Bing)

Hasilkan gambar keren dari teks menggunakan Bing Image Creator. Anda hanya perlu memberikan cookie otentikasi. Akses melalui client.ns.bing.

Cara Penggunaan:

import asyncio

# Anda harus login ke bing.com di browser, lalu salin nilai cookie.
BING_AUTH_COOKIE_U = "COOKIE_U_ANDA"
BING_AUTH_COOKIE_SRCHHPGUSR = "COOKIE_SRCHHPGUSR_ANDA"

async def main():
    # Inisialisasi generator
    bing_image_gen = client.ns.bing(
        auth_cookie_u=BING_AUTH_COOKIE_U,
        auth_cookie_srchhpgusr=BING_AUTH_COOKIE_SRCHHPGUSR
    )
    
    prompt = "seekor rubah cyberpunk mengendarai motor di kota neon"
    print(f"Membuat gambar dengan prompt: '{prompt}'...")
    
    image_urls = await bing_image_gen.generate(prompt=prompt, num_images=4)
    print(f"URL Gambar: {image_urls}")

# Jalankan dalam event loop (Pyrogram sudah melakukannya untuk Anda di handler)

4. nsdev.button - Pembuat Tombol Keren untuk Telegram

Sederhanakan pembuatan tombol inline atau reply dengan client.ns.button menggunakan sintaks berbasis teks.

Cara Penggunaan:

# 1. Membuat Keyboard Inline
# Syntax: | Teks Tombol - data_callback_atau_url |
# Modifier 'same' untuk menempatkan di baris yang sama.
text_with_buttons = """
Ini adalah pesan dengan tombol. Pilih salah satu:
| Tombol 1 - data1 |
| Tombol 2 - data2 |
| Google - https://google.com | | Bantuan - help;same |
"""

# Parsing teks untuk membuat keyboard dan mendapatkan teks sisanya
inline_keyboard, remaining_text = client.ns.button.create_keyboard(text_with_buttons)
await message.reply(remaining_text, reply_markup=inline_keyboard)

# 2. Membuat Keyboard Reply (tombol di bawah area ketik)
text_with_reply = """
Halo! Pilih menu di bawah.
| Menu Utama - Tentang Kami - Kontak;same |
"""

reply_keyboard, remaining_text_reply = client.ns.button.create_reply_keyboard(text_with_reply)
await message.reply(remaining_text_reply, reply_markup=reply_keyboard)

5. nsdev.colorize - Pewarna Teks Terminal

Berikan warna-warni pada output terminal skrip Anda dengan client.ns.color.

Cara Penggunaan:

colors = client.ns.color

print(f"{colors.GREEN}Pesan ini berwarna hijau!{colors.RESET}")
print(f"{colors.RED}Peringatan: Ada kesalahan!{colors.RESET}")
print(f"{colors.CYAN}Ini adalah informasi penting.{colors.RESET}")

# Cetak semua warna yang tersedia
colors.print_all_colors()

6. nsdev.database - Database Serbaguna dengan Enkripsi

client.ns.db adalah solusi penyimpanan data fleksibel (JSON, MongoDB, SQLite) dengan enkripsi otomatis.

Cara Penggunaan:

# --- Menggunakan file JSON local (paling simpel) ---
# Inisialisasi (file 'my_database.json' akan dibuat)
db = client.ns.db(storage_type="local", file_name="my_database")

# Simpan variabel untuk user_id tertentu
user_id = 12345
db.setVars(user_id, "NAMA", "Budi")
db.setVars(user_id, "LEVEL", 10)

# Ambil variabel
nama = db.getVars(user_id, "NAMA")
print(f"Nama Pengguna: {nama}") # Output: Budi

# Atur tanggal kedaluwarsa (30 hari dari sekarang)
db.setExp(user_id, exp=30)
print(f"Sisa hari: {db.daysLeft(user_id)}")

# Tutup koneksi saat selesai (penting untuk SQLite)
db.close()

# --- Contoh inisialisasi lain ---
# db_mongo = client.ns.db(storage_type="mongo", mongo_url="...")
# db_sqlite = client.ns.db(storage_type="sqlite", file_name="data.db")

7. nsdev.encrypt - Enkripsi dan Dekripsi Sederhana

Butuh cara cepat untuk menyamarkan data? Gunakan client.ns.encrypt yang menyediakan beberapa metode enkripsi sederhana.

Cara Penggunaan:

# Inisialisasi dengan metode 'bytes' dan sebuah kunci (angka)
# Akses kelas CipherHandler melalui namespace `encrypt`
cipher = client.ns.code.Cipher(method="bytes", key=123456789)

# Teks asli
pesan_rahasia = "Ini adalah pesan yang sangat rahasia."

# Enkripsi
encrypted_text = cipher.encrypt(pesan_rahasia)
print(f"Teks Terenkripsi: {encrypted_text}")

# Dekripsi
decrypted_text = cipher.decrypt(encrypted_text)
print(f"Teks Asli: {decrypted_text}")

8. nsdev.gemini - Ngobrol dengan AI Google Gemini

Berinteraksi dengan model AI Gemini dari Google. Cocok untuk chatbot atau mode hiburan "cek khodam". Akses melalui client.ns.gemini.

Cara Penggunaan:

# Ganti dengan API Key kamu dari Google AI Studio
GEMINI_API_KEY = "API_KEY_ANDA"
chatbot = client.ns.gemini(api_key=GEMINI_API_KEY)
user_id = 12345 # ID unik untuk setiap pengguna

# 1. Mode Chatbot Santai
pertanyaan = "kasih aku jokes bapak-bapak dong"
jawaban = chatbot.send_chat_message(pertanyaan, user_id=user_id, bot_name="BotKeren")
print(f"Jawaban Bot: {jawaban}")

# 2. Mode Cek Khodam (untuk hiburan)
nama = "Nor Sodikin"
deskripsi_khodam = chatbot.send_khodam_message(nama)
print(f"\n--- Hasil Cek Khodam untuk {nama} ---\n{deskripsi_khodam}")

9. nsdev.gradient - Efek Teks Keren di Terminal

Hidupkan tampilan terminal dengan banner teks bergradien dan countdown timer animatif menggunakan client.ns.grad.

Cara Penggunaan:

import asyncio

# 1. Render teks dengan efek gradien
client.ns.grad.render_text("Nor Sodikin")

# 2. Countdown timer animatif
async def run_countdown():
    print("\nMemulai hitung mundur...")
    await client.ns.grad.countdown(10, text="Harap tunggu {time} lagi...")
    print("\nWaktu habis!")

# asyncio.run(run_countdown())

10. nsdev.logger - Pencatat Log Informatif dan Berwarna

client.ns.log adalah versi canggih dari print(). Mencatat pesan ke konsol dengan format rapi, berwarna, lengkap dengan waktu, file, dan nama fungsi.

Cara Penggunaan (dalam fungsi apapun):

def fungsi_penting():
    client.ns.log.info("Memulai proses penting.")
    try:
        a = 10 / 0
    except Exception as e:
        client.ns.log.error(f"Terjadi kesalahan: {e}")
    client.ns.log.warning("Proses mungkin tidak berjalan sempurna.")
    client.ns.log.debug("Nilai variabel saat ini: ...")

fungsi_penting()
# Output di konsol akan terlihat sangat rapi dan berwarna!

11. nsdev.payment - Integrasi Payment Gateway

Butuh sistem pembayaran? Gunakan client.ns.payment yang menyediakan klien untuk Midtrans, Tripay, dan VioletMediaPay.

Cara Penggunaan (Contoh dengan VioletMediaPay):

import asyncio

VIOLET_API_KEY = "API_KEY_ANDA"
VIOLET_SECRET_KEY = "SECRET_KEY_ANDA"

async def buat_pembayaran():
    # Akses kelas melalui namespace 'payment'
    # 'live=False' untuk mode sandbox/testing
    payment_client = client.ns.payment.Violet(
        api_key=VIOLET_API_KEY, secret_key=VIOLET_SECRET_KEY, live=False
    )
    
    payment = await payment_client.create_payment(
        channel_payment="QRIS", amount="5000", produk="Donasi Kopi"
    )

    if payment.api_response.status:
        print(f"QR Code Link: {payment.api_response.data.target}")
    else:
        print(f"Gagal: {payment.api_response.data.status}")
            
# asyncio.run(buat_pembayaran())

Untuk Midtrans dan Tripay, akses melalui client.ns.payment.Midtrans dan client.ns.payment.Tripay.


12. nsdev.storekey - Penyimpanan Kunci yang Aman

client.ns.key berfungsi seperti "brankas kecil" untuk menyimpan data sensitif (kunci API) secara terenkripsi di file sementara.

Cara Penggunaan (di awal skrip Anda):

# Inisialisasi KeyManager
key_manager = client.ns.key(filename="kunci_aplikasi.json")

# Panggil fungsi ini di awal skrip.
# Jika file kunci belum ada, pengguna akan diminta untuk memasukkannya.
# Jika sudah ada, fungsi ini akan membacanya dari file.
kunci, nama_env = key_manager.handle_arguments()

print(f"Kunci yang digunakan: {kunci}")
print(f"Nama Environment: {nama_env}")

# Juga bisa diatur via command line:
# python skrip_kamu.py --key 12345 --env .env_development

13. nsdev.ymlreder - Pembaca File YAML Praktis

client.ns.yaml membuat pekerjaan dengan file konfigurasi .yml sangat mudah, mengubahnya menjadi objek Python yang bisa diakses dengan notasi titik.

Cara Penggunaan:

Anggap kamu punya file config.yml seperti contoh di awal.

# Muat file dan ubah menjadi objek
config = client.ns.yaml.loadAndConvert("config.yml")

if config:
    # Akses data dengan mudah
    db_host = config.database.host
    db_port = config.database.port
    print(f"Host Database: {db_host}:{db_port}")
    
    # Akses list
    for api in config.api_keys:
        print(f"API {api.name} key: {api.key}")

Penggunaan Standalone (Tanpa Pyrogram)

Jika Anda ingin menggunakan modul ini di luar proyek bot Pyrogram, Anda tetap bisa mengimpornya secara langsung seperti pustaka Python biasa.

from nsdev import DataBase
from nsdev import AnsiColors

# ...dan seterusnya

Lisensi

Pustaka ini dirilis di bawah Lisensi MIT. Kamu bebas menggunakan, memodifikasi, dan mendistribusikannya.


Semoga dokumentasi baru ini membantu Anda berkreasi lebih cepat dan efisien! Selamat mencoba dengan norsodikin.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

norsodikin-0.9.4.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

norsodikin-0.9.4-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

File details

Details for the file norsodikin-0.9.4.tar.gz.

File metadata

  • Download URL: norsodikin-0.9.4.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for norsodikin-0.9.4.tar.gz
Algorithm Hash digest
SHA256 d6a0efecb3ea11c480bb6e5175fb1eae6c26c3549457282c33830b8174398bd6
MD5 9510a7a1bf8a135550c8420d5446a641
BLAKE2b-256 10b1f79523d52fc44dee2ab4a537b92ce937c55b0c4c6efcbdf99973693c2f6d

See more details on using hashes here.

File details

Details for the file norsodikin-0.9.4-py3-none-any.whl.

File metadata

  • Download URL: norsodikin-0.9.4-py3-none-any.whl
  • Upload date:
  • Size: 29.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for norsodikin-0.9.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0a22f943c594ee9c86a64f7c9e7478d0728c86fe2ade0c849ce2202691b7d777
MD5 e25da198fba970fac19a41d745ada5c5
BLAKE2b-256 4b41cc0ea0dae695036b7195d7e67f8bd19604199a9325df877f086bbf2b3bf8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page