Online video hd

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

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

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

leonder 09.03.2010 07:50

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

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

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

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

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

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

1
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
#!/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






Тэги: bash bash-скрипт Screenshot интернет скрипты фото
+ 4 -
Похожие Поделиться

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

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

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

echo "$LINK" >> img2inet.log

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

Нужно в скрипте заменить все "http://omploader.org" на "http://ompldr.org/".
leonder 24.11.2010 20:13 #
+ 0 -
Исправил, обновил статью, скрипт для скачивания, проверил. Спасибо.
EugeneHill 29.10.2011 19:46 #
+ 0 -
Спасибо за скрипт. а можно сделать, чтобы скрипт выдавал ссылку на превью-изображение, которое потом раскрывается в полный размер?
mironov_orig 29.10.2011 19:47 #
+ 0 -
Можно
EugeneHill 29.10.2011 19:50 #
+ 0 -
подскажите как, пож-ста
mironov_orig 29.10.2011 20:14 #
+ 0 -
200р

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

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


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

Online video HD

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

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

Full HD video online

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

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

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