DEV Community

Cover image for Python Betiği İle Eklenti Geliştirme
Mustafa AKBEL for Liman

Posted on • Edited on

2 2

Python Betiği İle Eklenti Geliştirme

Liman MYS üzerinde python, bash veya powershell betikleri çalıştırabilmekteyiz.

1.İlk olarak Sistem Ayarları > Eklenti > Yeni yolunu izleyerek eklenti oluşturuyoruz. Yaptığımız işlem bize varsayılan olarak views klasör altında index.php ve functions.php olmak üzere iki dosya oluşturmaktaydı.

Visual Studio Code ile Liman sunucusuna bağlanıp eklenti dosyalarına erişebiliyoruz. Bu konu hakkında Mert Çelen'in yazdığı yazıya buradan ulaşabilirsiniz.

Alt Text

2.Scripts klasörü içine liman sunucusunda liman user'ı ile aşağıdaki kod yardımıyla devtopython adında python dosyası oluşturulur.

touch /liman/extensions/devtopython/scripts/devtopython.py

Veya Visual Studio Code arayüzü ile scripts klasörüne sağ tıklayıp new file diyerek oluşturabilirsiniz.

3.index.blade.php dosyasına gerekli kod parçacıkları yazılır. Aşağıdan erişebilirsiniz.

<button class="btn btn-primary mb-2" onclick="runScript()">Python scriptini çalıştır</button>
<div id="devtoPython"></div>

<script>
    function runScript(){
        var form = new FormData();
        request("{{API('runPythonScript')}}", form, function(response) {
            message = JSON.parse(response)["message"];
            $('#devtoPython').html(message);
        }, function(error) {
            $('#devtoPython').html("Hata oluştu");
        });
    }
</script>

Enter fullscreen mode Exit fullscreen mode

Butona tıklandığında anda javascript fonksiyonu çalışıp backend de runPythonScript php fonksiyonuna gidecek.

4.functions.php sayfasının içeriği ise aşağıdaki gibidir.

<?php 

    function index(){
        return view('index');
    }

    function runPythonScript(){
        $output = runScript("devtopython.py","",false);
        return respond($output,200);
    }

?>
Enter fullscreen mode Exit fullscreen mode

runScript helperı Liman üzerinden betik çalıştırmamızı sağlamaktadır. 3 parametre almaktadır. Birinci parametre betik adı, ikinci parametre betiğe gönderilmek istenen parametrelerdir, üçüncüsü ise betiğin sudo veya normal çalışacağını belirtmektedir. Üçüncü parametre false verilir ise normal, true verilir ise betik sudo ile çalıştırılmaktadır.

5.devtopython.py içerisinde istediğiniz python komutlarını kullanabilirsiniz. Örnek amaçlı kullanılan betiğin içeriği aşağıdadır.

#!/usr/bin/python3
print("Merhaba Dünya !!")
Enter fullscreen mode Exit fullscreen mode

Eklentinin görsel çıktıları aşağıdadır.
Butona basılmadan önceki görsel ;

Alt Text

Butona basıldıktan sonraki görsel ;

Alt Text

Eklentinin koduna buradan ulaşabilirsiniz.

Image of AssemblyAI tool

Transforming Interviews into Publishable Stories with AssemblyAI

Insightview is a modern web application that streamlines the interview workflow for journalists. By leveraging AssemblyAI's LeMUR and Universal-2 technology, it transforms raw interview recordings into structured, actionable content, dramatically reducing the time from recording to publication.

Key Features:
🎥 Audio/video file upload with real-time preview
🗣️ Advanced transcription with speaker identification
⭐ Automatic highlight extraction of key moments
✍️ AI-powered article draft generation
📤 Export interview's subtitles in VTT format

Read full post

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay