<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Быстрое копирование многостраничных сетевых книг в текстовый файл]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8640&amp;type=atom" />
	<updated>2013-09-03T05:06:21Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8640</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Быстрое копирование многостраничных сетевых книг в текстовый файл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75172#p75172" />
			<content type="html"><![CDATA[<p>Скрипт делался со вполне конкретными целями, как замена оффлайновым браузерам, результат работы которых все равно нуждается в обработке, которая не столь проста и требует много больше времени. Книги (fb2, epub и прочее) легко делаются из текстовых файлов, а не их скачанных файлов, где слишком много мусора. Потратить в среднем 3-4 минуты на получение материала и не забивать себе голову излишествами - вот цель, для которой он создан.<br />Что же касается парсинга страниц, то никакой разборщик html-кода не даст вам уверенности, что вы получите искомое. Например, замечательная примочка к Опере cleanPages все равно выбирает наибольший текстовый фрагмент и безбожно гючит на коротких страницах<br />Четвертый вариант позволяет добавлять короткие фрагменты к основному тексту, если в этом возникает необходимость (нр, если расположены вне основной части страницы)</p>]]></content>
			<author>
				<name><![CDATA[Krot66]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30687</uri>
			</author>
			<updated>2013-09-03T05:06:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75172#p75172</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Быстрое копирование многостраничных сетевых книг в текстовый файл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75168#p75168" />
			<content type="html"><![CDATA[<p><strong>ТС</strong><br />Вы либо тут спрашивайте что да как, или будучи опытным в АНК выкладывайте с понтом есть такое чудо может его в коллекцию?.<br />Или есть такое чудо, в моём понимании, скажите что не так?.<br />Что за ваш четвёртый вариант?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-09-02T17:37:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75168#p75168</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Быстрое копирование многостраничных сетевых книг в текстовый файл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75166#p75166" />
			<content type="html"><![CDATA[<p>Судя по описанию, скрипт довольно узко специализирован, и кмк, вряд ли вызовет большое желание копипастить вручную текст со страниц, пусть&nbsp; и в полуавтоматическом режиме. <br />Ежели автор желает довести скрипт до более-менее приемлемого по уровню комфорта использования, то почему бы не научить скрипт скачивать страничку самому, парсить на предмет полезного текста и ссылок на след.страничку, и по достижении конца оформлять одним файлом?</p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-09-02T16:06:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75166#p75166</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Быстрое копирование многостраничных сетевых книг в текстовый файл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75161#p75161" />
			<content type="html"><![CDATA[<p><span style="color: #008800"><strong>Krot66</strong>, ознакомьтесь с <a href="http://forum.script-coding.com/viewtopic.php?id=6148">этой</a> темой, отредактируйте заголовок.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2013-09-01T19:53:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75161#p75161</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Быстрое копирование многостраничных сетевых книг в текстовый файл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75155#p75155" />
			<content type="html"><![CDATA[<p>Предназначен для тех, кто занимается созданием электронных книг или хочет читать на ридере интересующий текст в удобочитаемом виде. Пригоден так же для ускоренного конспектирования, набивки цитат и других подобных занятий.<br />При сравнительно благоприятных условиях (хорошая скорость загрузки, наличие ссылок и умеренное количество мусора внизу страницы) темп 7-8 страниц в минуту является вполне реальным и не требующим особого напряжения.</p><p>Поддерживаются Opera и браузеры на движке WebKit (Chrome, Maxthon 3+, Comodo Dragon, Iron, etc.)</p><p>Как это работает:<br /></p><ul><li><p>Зажав Ctrl, щелкаем правой кнопкой мыши перед началом первой строки интересующего текста.</p></li></ul><ul><li><p>Страница прокручивается к концу, выделяя текст.</p></li></ul><ul><li><p>Перемещая мышь, корректируем выделение внизу страницы</p></li></ul><ul><li><p>Отпускаем Ctrl, если это первый фрагмент, вводим или подтверждаем сгенерированное название в появляющемся окне, переходим к следующей странице и т.д.. Если нажать левую кнопку мыши ДО отпускания Ctrl, выделение будет сброшено, а добавление отменено.</p></li></ul><ul><li><p>Возможно так же сохранение выделенных вручную фрагментов по Alt+ПКМ (это работает где угодно)</p></li></ul><p>Использование качественной баннерорезки (например, AdBlock) может существенно упрощать процесс. Следует так же подбирать подходящий масштаб страницы.</p><div class="codebox"><pre><code>#NoEnv 
SendMode Input 
SetWorkingDir %A_ScriptDir%
#SingleInstance force
SetTitleMatchMode Slow
CoordMode Mouse, Screen

;--------------------------------------------------
; Ctrl+правый клик перед первой строкой - автоматическое выделение (сохраняется после отпускания Ctrl)
; Alt+правый клик - сохранение выделенного вручную
; Ctrl+Alt+B - открытие текущего файла
; Ctrl+Alt+N - новая книга
;--------------------------------------------------
adr:=1 ; - вставлять адрес первой страницы в начало файла
sep:=&quot;====================&quot; ; - разделитель фрагментов
num:=0 ; - нумерация разделителей
enc:=1 ; - кодировка файла (0 - ANSI; 1 - UTF-8)
sound:=0 ; - звуковой сигнал при сохранении (помимо тултипа) 
;--------------------------------------------------

Menu Tray, Icon, shell32.dll, 40
Menu Tray, NoStandard
Menu Tray, Add, Новая книга, ^!vk4E
Menu Tray, Add, Просмотр файла, ^!vk42
Menu Tray, Add, Открыть папку, Folder
Menu Tray, Add
Menu Tray, Add, Выход, Exit

If (enc=1)
    FileEncoding UTF-8
FileCreateDir Books
SysGet, M, MonitorWorkArea
n:=0

^!vk4E::
MsgBox 64, ,% &quot;Новая книга!`nСкопировано  &quot; n &quot;  фрагментов&quot;, 2
n:=0
return

^!vk42::
IfExist % &quot;Books\&quot; t &quot;.txt&quot;
    Run % &quot;Books\&quot; t &quot;.txt&quot;
else
    MsgBox, 16, Ошибка, Ничего не сохранено!, 1
return

Exit:
ExitApp

Folder:
Run % &quot;Books&quot;
return

!RButton::
KeyWait Alt, U T6
goto Save

^RButton:: 
KeyWait RButton, U T2
If Errorlevel
    return
MouseClick Left , , , , , D
MouseGetPos x, y
MouseMove 100 , 0, , R
MouseMove 0 , 50, , R
Send {End} 
MouseMove MRight*0.5, y
KeyWait Ctrl, U T10
MouseClick Left , , , , , U
Save:
text:=CopyText(1)
If (text=&quot;&quot;)
{
    MsgBox, 16, Ошибка, Ничего не скопировано!, 1
    return
}
n:=n+1
If (n=1)
{
    WinGetActiveTitle t
    t:=DelAppName(t)
    StringLeft t, t, 80
    t:=ValidName(t)
    mes:=&quot;Введите имя файла без расширения:&quot;
    Input:
    InputBox t, ,% mes, , 600, 160, , , , ,% t
    If Errorlevel
    {
        n=0
        return
    }
    e:=FileExist(&quot;Books\&quot; t &quot;.txt&quot;)
    If (e&lt;&gt;&quot;&quot;)
    {
        mes:=&quot;Имя файла существует!&quot;
        goto Input
    }
    If (adr&lt;&gt;0)
        add:=CopyAddress()
}
n2:=&quot;&quot;
If (num=1)
    n2:=n &quot; &quot;
s:=&quot;`n`n&quot; n2 . sep &quot;`n`n&quot;
FileAppend % add . s . text, % &quot;Books\&quot; t &quot;.txt&quot;
If Errorlevel
    MsgBox, 16, , Ошибка сохранения!, 1
else
{
    Tooltip Сохранено
    If (sound=1)
        SoundBeep 400, 200
    Sleep 500
    ToolTip
}
e:=0
add:=&quot;&quot;
return

CopyAddress()
{
    Sleep 500
    ClipBoard := &quot;&quot;
    Send !{vk44}
    Sleep 300
    Send ^{Ins}
    ClipWait 0.5
    Send {Esc}
    return Clipboard
}

CopyText(t=0.5)
{
    ClipBoard := &quot;&quot;
    Send ^{Ins}
    ClipWait % t
    return Trim(ClipBoard)
}

DelAppName(n)
{
    StringCaseSense On
    StringGetPos pos, n, %A_Space%-%A_Space%, r
    If (pos&gt;0)
        StringLeft n, n, pos+2
    StringCaseSense Off
    return Trim(n)
}

ValidName(n)
{
    StringReplace n, n, `r`n, %A_Space%, All
    StringReplace n, n, `n, %A_Space%, All
    StringReplace n, n, \, %A_Space%, All
    StringReplace n, n, /, %A_Space%, All
    StringReplace n, n, :, ,All
    StringReplace n, n, *, ,All
    StringReplace n, n, ?, ,All
    StringReplace n, n, &quot;, ,All
    StringReplace n, n, &gt;, %A_Space%, All
    StringReplace n, n, &lt;, %A_Space%, All
    StringReplace n, n, |, -, All
    StringReplace n, n, %A_Space%%A_Space%, %A_Space%, All
    return Trim(n)
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Krot66]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30687</uri>
			</author>
			<updated>2013-09-01T12:48:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75155#p75155</id>
		</entry>
</feed>
