Видео ролики бесплатно онлайн

Смотреть русский видео

Официальный сайт panajotov 24/7/365

Смотреть видео бесплатно

09.03.10 07:50 leonder

СкриптыЗагрузка скриншотов и изображений в интернет и получение ссылки

Я уже писал про два отдельных скрипта - один для загрузки скриншотов, другой для загрузки файлов из файлового менеджера. Любознательные люди задавали вопросы, старшие опытные товарищи давали советы. В итоге с радостью представляю вашему вниманию усовершенствованную версию скрипта для загрузки изображений в Интернет.

Видео демонстрация возможностей

Что из себя представляет скрипт
Это исполняемый текстовый файл. Хранить его следует в каталоге /home/Имя_пользователя/bin.

Как использовать скрипт

Будучи "просто запущенным" скрипт делает снимок экрана, но если запустить его с указанием в качестве аргумента имени существующего файла, то этот файл будет отправлен в Интернет. Пример:

img2inet /home/leonder/images/wallpaper/anime_girl_59.jpg

На самом деле все даже проще: из файлового менеджера можно выбрать для картинки пункт контекстного меню "открыть с помощью" и прописать вручную просто имя скрипта (img2inet).

Для thunar, например, можно "специальное действие" создать, и там команда запуска будет img2inet %f

Принцип работы скрипта

Допустим, пользователь нажал клавишу PrintScreen и произошёл вызов скрипта, тогда всплывает диалог:



При нажатии кнопки "Открыть" - созданный скриншот открывается в программе для просмотра изображений и работа скрипта завершается.

При нажатии кнопки "Редактировать" - созданный скриншот открывается в редакторе, когда редактор будет закрыт, работа скрипта продолжится, всплывёт диалог:



Следует заметить, что будет отправлен именно тот файл, который был создан скриптом (то есть: если в редакторе "сохранить как..." другой файл - то новый файл не будет отправлен, отправится оригинальный)

Практически такой же диалог всплывет при нажатии кнопки "в Интернет", а также при запуске скрипта для "открытия" локального файла.

Если нажать "Отмена", то скрипт будет завершен, если выбран один из хостингов, то начнется загрузка изображения. Через секунду-другую, в зависимости от качества соединения с Интернетом, всплывёт окошко с уведомлением, что дескать файл загружен, а ссылка получена и сохранена в буфер обмена:



"Посмотреть" - открывает браузер для просмотра только что загруженного изображения. "OK" - просто закрывает окошко.

Собственно скрипт:

Всвязи с тем, что при размещении поста символы табуляции превращаются в пробелы обращаю внимание на то, что скрипт под спойлером не работоспособен (если не заменить пробелы на табы вручную), поэтому предлагаю взять текст скрипта здесь: http://tehgazmaf.ru/tmp/img2inet


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/sh

# Скрипт использует программы:
# 1. scrot - утилита командной строки для захвата изображения экрана.
# 2. gxmessage - обеспечивает легкий способ для отображения сценариев всплывающими диалогами
# 3. gpicview - самый легкий, простой и удобный просмотрщик изображений, что я видел
# 4. curl - для загрузки файлов по одному из протоколов HTTP, HTTPS или FTP.
# 5. xsel - для манипуляций с выделениями и буфером обмена

# Сначала создаётся отдельный каталог для снимков, сделанных сегодня.
# Создаётся только в том случае, если его ещё нет.
# Пропишите здесь <b>свой путь</b> для сохранения снимков!
DIR=~/images/screenshots/`date +%Y.%m.%d`
if [ ! -d $DIR ]; then mkdir $DIR; fi

# Если не задан файл конкретный (заданный не существет), то сделать снимок экрана
if ! [ -f "$1" ]
        then
                FILE=$DIR"/`date '+%y-%m-%d-%N'`".jpg
                scrot --quality 100 "$FILE";
                chmod 777 $FILE;
        else FILE="$1"
fi

#Массив
#ВНИМАНИЕ!!! Здесь разделителем должен быть символ табуляции!
#Если при загрузке текста на сайт они превращаются в пробелы,
#или при копировании Вами из браузера в текстовый редактор - имейте это ввиду!
#URL;   CURL params,where file field=@$FILE;    SED rule, where \1=_NAME_, TAB is delimiter
GLB_IMG_DATA='http://ompldr.org/upload  -F "file1=@$FILE"       s/.*File\:.* href\="\([^><"]*\)".*/http:\/\/ompldr.org_NAME_/p
http://radikal.ru/action.aspx   -F F=@$FILE -F upload=yes -F JQ=85 -F J=no -F R=0 -F VE=no -F IM=7 -F V=Enlarge         s/.*<input.*"input_link_1".*value="\([^"<>]*\)".*/_NAME_/p
http://imgur.com/api/upload.xml -F "image=@$FILE" -F "key=5d317f0bee23b282473522e1aa68f621"     s/.*<original_image[^>]*>\([^"<>]*\)<.*/_NAME_/p
http://imageshack.us/   -F "fileupload=@$FILE" -F "xml=yes"     s/.*image_link[^>]*>\([^"<>]*\)<.*/_NAME_/p'


# Функции:
upload_image() {
        FILE="$1"
        str="$2"
        url=$(echo "$str" | cut -f 1)
        params=$(echo "$str" | cut -f 2)
        tpl=$(echo "$str" | cut -f 3 | sed 's/_NAME_/\\1/g')
        html=$(eval "curl -s $params \"$url\"")
        durl=$(eval "echo \"\$html\" | sed -n '$tpl'" | head -1)
        echo "$durl"
}

find_service_and_upload() {
        FILE="$1"
        SERVICE="$2"
        while read -r str ; do
                echo "$str" | grep -q "$SERVICE" || continue
                upload_image "$FILE" "$str"
        done << EOF
$GLB_IMG_DATA
EOF

}

# Собственно действия

# отдельно для скриншота и для файла
# если не задан файл (то скриншот)
if ! [ -f "$1" ]; then
        #Выводится на экран окошко с вопросом и вариантами ответа
        gxmessage -title "Сделан снимок экрана" -center -buttons "Открыть:0,Редактировать:3,В Интернет:2,Удалить:1" "Что следует сделать с изображением?";
        ACTION=$?;
        #Указывается, что нужно сделать в случае нажатия определённой кнопки
        case "$ACTION" in
                #Открыть:0 - Открыть сделанный снимок в программе-просмотрщике картинок и завершить сценарий
        [0] ) gpicview "$FILE"; exit 1;;
        #Удалить:1 - Удалить сделанный снимок
        [1] ) rm "$FILE"; exit 1;;
        #В Интернет:2 - Диалог выбора хостинг-сервиса
        [2] )
                gxmessage -title "Выберите сервис:" -center -buttons "imgur.com:5,radikal.ru:4,imageshack.us:3,ompldr.org:2,Отмена:1" "Выберите один из хостингов:";
                HOSTING=$?;;
                # Редактировать. Открывается GIMP, затем (после его закрытия) всплывает диалог выбора хостинга
                [3] )
                        gimp "$FILE";
                        gxmessage -title "Выберите сервис:" -center -buttons "imgur.com:5,radikal.ru:4,imageshack.us:3,ompldr.org:2,Отмена:1" "Выберите один из хостингов для отправки отредактированного изображения:";
                        HOSTING=$?;;
        esac
        #если файл задан прямо
        else
                gxmessage -title "Выберите сервис:" -center -buttons "imgur.com:5,radikal.ru:4,imageshack.us:3,ompldr.org:2,Отмена:1" "Выберите один из хостингов:";
                HOSTING=$?;
fi

case "$HOSTING" in
        #Отмена
        [1] ) exit 1;;
        [2] ) SERVICE="ompldr.org";;
        [3] ) SERVICE="imageshack.us";;
        [4] ) SERVICE="radikal.ru";;
        [5] ) SERVICE="imgur.com";;
esac

if [ -f "$FILE" ]; then
        LINK=$(find_service_and_upload "$FILE" "$SERVICE")
        #echo $LINK
        #Кладём ссылку в буфер обмена
        echo "$LINK" | xsel --clipboard --input

        #Выводим окошко, чтобы стало ясно, что работа скрипта закончена
        gxmessage -title "Готово!" -buttons "Посмотреть:0,ОК:1" -center "Ссылка сохранена в буфер обмена:
        $LINK"

        if [ $? = 0 ]
        then
                x-www-browser "$LINK"
        fi
fi
 






stogerc 09.03.10 08:26 # +0
Хотелось бы для полного счастья ещё и кнопку "Сохранить", а так очень приятный скрипт.
digiwhite 09.03.10 10:09 # +0
Для Nautilus можно использовать Nautilus actions (или как там-забыл точное название :) ).
stogerc 09.03.10 13:40 # +0
В thunar тоже можно добавлять свои скрипты в меню по-моему.
eugenez 09.03.10 17:09 # +0
У меня не работает ;( Ничего не копирует в буфер и, похоже, не отправляет...
leonder 09.03.10 17:36 # +0
К сожалению, не знаю в чём дело, но уверен, что в системе чего-то не хватает или что-то такое. Просто предыдущая версия (сильно проще этой) у меня внезапно перестала работать, а именно команда на копирование в буфер. Более того, вообще буфер обмена странно себя вёл. Но прошло это так же неожиданно, как и проявилось, и я не смог выяснить, в чём причина.

А если в консоли запустить, какой вывод? Ошибки есть? Прошу прощения, а программы-то установлены нужные (curl, xsel и т.п.)?
ilzoff 09.03.10 23:54 # +0
Тоже не дает ссылку и, наверное, не загружает.
Консоль выдает:
sed: -e expression #1, char 2: extra characters after command
leonder 10.03.10 21:08 # +0
Причина найдена! Дело в том, что при размещении поста символы табуляции превратились в пробелы. Следует поменять значит вручную... где переменная GLB_IMG_DATA объявляется.
leonder 10.03.10 21:41 # +1
Не стоит менять вручную, лучше взять нормальный скрипт по ссылке: http://tehgazmaf.ru/tmp/img2inet
eugenez 12.03.10 09:51 # +0
да, вот теперь работает и постит, спасибо.

я только ещё добавил строчку

echo "$LINK" >> img2inet.log


для борьбы с последствиями склероза ;)
frepkin 18.03.10 13:10 # +0
Скажите пожалуйста, а этот ваш скрипт сейчас работает по Радикалу, или перестал загружать? Проверьте пожалуйста.
leonder 18.03.10 17:25 # +1
Как видно, да: http://s08.radikal.ru/i181/1003/5b/cacb735f6c05.jpg
frepkin 19.03.10 23:53 # +0
Спасибо! Помогло.
Astramak 18.05.10 09:36 # +0
видео это круто!
ilzoff 24.11.10 19:48 # +1
Перестала работать отправка на http://omploader.org — у них сменился адрес.

Нужно в скрипте заменить все "http://omploader.org" на "http://ompldr.org/".
leonder 24.11.10 20:13 # +0
Исправил, обновил статью, скрипт для скачивания, проверил. Спасибо.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 149)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2986 из 222 городов)
            Топ пользователей Топ блогов

            Новенькие: sgv, Suberjin, jsk, Nikproz, paulz
            welinux.ru
            продажа телефонов в петербурге

            Смотреть онлайн бесплатно

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн