Что нового

[Автоматизация] [АРХИВ] Автоматическое добавление объявлений на авито

valldar

Новичок
Сообщения
32
Репутация
2
AutoIt: 3.3.8.1
Версия: 1.0

Категория: Автоматизация

Описание: Программа была написана мной для автоматического добавления объявлений на сайт авито.ру в далеком 2015 году. Сейчас уже не актуальна. В свое время хорошо поработала, было даже прикручено автоматическое распознавание капчи с помощью capcap. Вероятность успешного распознавания была 50%.
Сейчас наткнулся на нее на компе, решил выложить просто в копилку знаний. Может кому-то пригодится код. Можете свободно брать и использовать любые фрагменты кода.

Код/Пример:
Здесь только часть кода, полный файл скачивайте ниже по ссылке.
Код:
#include <WinHttp.au3>
#include <array.au3>
#include <file.au3>
#include <String.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#include <GuiComboBox.au3>
#include <GuiTreeView.au3>
#include <WinAPI.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#include <Encoding.au3>
#include <GuiEdit.au3>
#include <Date.au3>
#include <Process.au3>
#include <ScrollBarConstants.au3>

HotKeySet('{F10}', '_quit')
Func _quit()
	Exit
EndFunc   ;==>_quit

Dim $id, $name
Global $parent, $child, $pressed = False, $child_text, $6
Global $form1, $Button1, $hConnect, $hOpen, $clicked = 0, $edit1, $Label1
Global $form2, $Input21, $button21, $button22, $input22
Global $form3, $button31, $button32, $button33, $Edit31, $Edit32, $Edit33, $Input33, $Input32, $Input31, $Label31, _
		$TreeView31, $Checkbox31, $tree, $Button34, $Button35, $advEditKey, $pic[5]
Global $form4, $combo4, $button41, $subctg_ids, $subctg_selectedid, $comboSelectedText, $aSubComboIndexes, $ubound, $aSubctg_selectedids, $sSubctg_names1, $aSubctg_ids, $aParams
Global $form5, $Button51, $Input51, $captch, $hConnect, $hOpen, $header3, $success = 0, $goodCaptcha = 0, $badCaptcha = 0

#region ### START Koda GUI section ### Form=c:\koda_1.7.3.0\forms\main.kxf
DirGetSize(@ScriptDir & '\ads')
If @error = 1 Then
	DirCreate(@ScriptDir & '\ads')
EndIf
$form1 = GUICreate("Avito Manager", 723, 375, 191, 131)
;$List1 = GUICtrlCreateListView("", 16, 40, 185, 188, BitOR($LVS_LIST,$LVS_SHOWSELALWAYS,$LVS_SINGLESEL)) ; accounts
$List1 = GUICtrlCreateList("", 16, 40, 185, 188, $LBS_EXTENDEDSEL) ; accounts
GUICtrlSetTip(-1, "Список ваших аккаунтов")
$acounts = IniReadSection(@ScriptDir & '\ads\adsIndex.Ini', 'Accounts')
If IsArray($acounts) Then
	For $g = 1 To $acounts[0][0]
		_GUICtrlListBox_AddString($List1, $acounts[$g][0] & ';' & $acounts[$g][1])
	Next
Else
EndIf
$List2 = GUICtrlCreateList("", 232, 40, 313, 188)
GUICtrlSetTip(-1, "Список ваших объявлений")
_advRead(1, 0, 0, 0, 0)
_FileReadToArray(@ScriptDir & '\Ids.Txt', $name)
_ArrayDelete($name, 0)
$6 = _ArrayToString($name)
$7 = StringRegExp($6, '(?is)\|?(.*?);.{24}', 3)
$8 = _ArrayToString($7)
$Combo1 = GUICtrlCreateCombo('Выбрать город', 568, 40, 137, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL))
GUICtrlSetData($Combo1, $8)
$Group1 = GUICtrlCreateGroup("Информация о выбранном аккаунте", 8, 280, 201, 81)
$Button6 = GUICtrlCreateButton("Активные", 16, 312, 83, 25)
$Button7 = GUICtrlCreateButton("Завершенные", 112, 312, 83, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("+", 32, 232, 75, 25) ; add account
$Button2 = GUICtrlCreateButton("-", 112, 232, 75, 25) ; del account
$Button3 = GUICtrlCreateButton("+", 240, 232, 59, 25) ; ads add new
$Button4 = GUICtrlCreateButton("-", 304, 232, 59, 25) ; ads del
$Button5 = GUICtrlCreateButton("Редактировать", 368, 232, 91, 25)
$Button13 = GUICtrlCreateButton("Копировать", 464, 232, 75, 25)
$Group2 = GUICtrlCreateGroup("Ваши аккаунты:", 8, 16, 201, 257)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Ваши объявления:", 216, 16, 337, 257)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("Выбрать город:", 560, 16, 153, 209)
$List3 = GUICtrlCreateList("", 568, 96, 137, 123)
GUICtrlSetTip(-1, "Вы можете добавить до 10 городов")
$cities = IniReadSection(@ScriptDir & '\ads\adsIndex.Ini', 'Cities')
If IsArray($cities) Then
	For $s = 1 To $cities[0][0]
		_GUICtrlListBox_AddString($List3, $cities[$s][0])
	Next
Else
EndIf
$Button11 = GUICtrlCreateButton("+", 568, 64, 43, 25)
GUICtrlSetTip(-1, "Добавить выбранный город в список")
$Button12 = GUICtrlCreateButton("-", 616, 64, 43, 25)
GUICtrlSetTip(-1, "Удалить выбранные города из списка")
$Label1 = GUICtrlCreateLabel(_GUICtrlListBox_GetCount($List3), 672, 72, 28, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button8 = GUICtrlCreateButton("Начать", 600, 280, 75, 25)
$Button9 = GUICtrlCreateButton("О программе", 600, 320, 75, 25)
$Group5 = GUICtrlCreateGroup("Лог", 216, 280, 337, 81)
$edit1 = GUICtrlCreateEdit(_NowDate() & ' ' & _NowTime() & " Начало работы" & @CRLF, 224, 296, 321, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button10 = GUICtrlCreateButton("Опции", 600, 240, 75, 25)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
	#forceref $hWnd, $iMsg
	Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
	If Not IsHWnd($List1) Then $hWndListBox = GUICtrlGetHandle($List1)
	$hWndFrom = $ilParam
	$iIDFrom = BitAND($iwParam, 0xFFFF) ; младшее слово
	$iCode = BitShift($iwParam, 16) ; старшее слово
	Switch $hWndFrom
		Case $List1, $hWndListBox
			Switch $iCode
				Case $LBN_SELCHANGE
					$clicked = 1
					;ConsoleWrite('clicked!'&@Lf)
			EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

#endregion ### END Koda GUI section ###
While 1
	$aMsg = GUIGetMsg(1)
	Switch $aMsg[1]
		Case $form1 ; from1 main begin
			GUISwitch($form1)
			Switch $aMsg[0]
				Case $GUI_EVENT_CLOSE
					Exit
				Case $Button1
					If WinExists('Form2') Then
					Else
						_Form2addAccount()
					EndIf
				Case $Button2
					$11 = StringRegExp(_GUICtrlListBox_GetText($List1, _GUICtrlListBox_GetCurSel($List1)), '(?si)(.*?);', 1)
					;MsgBox(0,'',$11[0])
					If @error <> 0 Or $clicked = 0 Then
					Else
						IniDelete(@ScriptDir & '\ads\adsIndex.Ini', 'Accounts', $11[0])
						_GUICtrlListBox_DeleteString($List1, _GUICtrlListBox_GetCurSel($List1))
					EndIf
				Case $Button3
					If WinExists('Добавить/Редактировать объявление') Then
					Else
						_Form3addItem(0, '', '', '', '', '', '')
					EndIf
				Case $Button4
					$DELadvStringToEdit = _GUICtrlListBox_GetCurSel($List2)
					$DELadvSelectedTitle = _GUICtrlListBox_GetText($List2, $DELadvStringToEdit)
					$DELadvTitleIndex = StringRegExp($DELadvSelectedTitle, '(?si)\[([0-9]*?)\]', 1)
					IniDelete(@ScriptDir & '\ads\adsIndex.Ini', $DELadvTitleIndex[0])
					FileDelete(@ScriptDir & '\ads\adv' & $DELadvTitleIndex[0] & '.Txt')
					_GUICtrlListBox_DeleteString($List2, _GUICtrlListBox_GetCurSel($List2))
				Case $Button5
					If _GUICtrlListBox_GetCurSel($List2) = -1 Then
					Else
						If WinExists('Добавить/Редактировать объявление') Then
						Else
							$advStringToEdit = _GUICtrlListBox_GetCurSel($List2)
							_advRead(0, 1, $advStringToEdit, 0, 0)
						EndIf
					EndIf
				Case $Button11
					If GUICtrlRead($Combo1) = 'Выбрать город' Then
					Else
						If _GUICtrlListBox_GetCount($List3) < 24 Then
							$7 = StringRegExp($6, '(?is)\|?' & GUICtrlRead($Combo1) & ';(.{24})\|?', 1)
							IniWrite(@ScriptDir & '\ads\adsIndex.Ini', 'Cities', GUICtrlRead($Combo1), _StringEncrypt(0, $7[0], 'id'))
							_GUICtrlListBox_AddString($List3, GUICtrlRead($Combo1))
							GUICtrlSetData($Label1, _GUICtrlListBox_GetCount($List3))
						Else
						EndIf
					EndIf
				Case $Button12
					$12 = _GUICtrlListBox_GetText($List3, _GUICtrlListBox_GetCurSel($List3))
					IniDelete(@ScriptDir & '\ads\adsIndex.Ini', 'Cities', $12)
					_GUICtrlListBox_DeleteString($List3, _GUICtrlListBox_GetCurSel($List3))
					#region Button8 Start
				Case $Button8
					$advStringToEdit = _GUICtrlListBox_GetCurSel($List2)
					_advRead(0, 0, $advStringToEdit, 1, 0)
					#endregion Button8 Start
					#region Button13 Copy
				Case $Button13
					If _GUICtrlListBox_GetCurSel($List2) = -1 Then
					Else
						$advStringToCopy = _GUICtrlListBox_GetCurSel($List2)
						_advCopy($advStringToCopy)
					EndIf
					#endregion Button13 Copy
			EndSwitch
		Case $form2 ; from2 addAccount begin
			If _WinAPI_IsWindowVisible($form2) = True Then
				GUISwitch($form2)
				Switch $aMsg[0]
					Case $GUI_EVENT_CLOSE
						GUIDelete($form2)
					Case $button21
						_GUICtrlListBox_AddString($List1, GUICtrlRead($Input21) & ';' & GUICtrlRead($input22))
						;$email_pass=StringSplit()
						IniWrite(@ScriptDir & '\ads\adsIndex.Ini', 'Accounts', GUICtrlRead($Input21), GUICtrlRead($input22))
					Case $button22
						GUIDelete($form2)
				EndSwitch
			Else
			EndIf
		Case $form3 ; from3 additem begin
			If _WinAPI_IsWindowVisible($form3) = True Then
				GUISwitch($form3)
				Switch $aMsg[0]
					Case $GUI_EVENT_CLOSE
						GUIDelete($form3)
						$pressed = False
					Case $button31
						$functionCompleted = 0
						If $advEditKey = 0 Then
							_advWrite(0)
						Else
							_advWrite(1)
						EndIf
						If $functionCompleted = 1 Then
							GUIDelete($form3)
						EndIf
					Case $Button34
						If WinExists('Выбор подкатегории') Then
						Else
							$pressed = True
							$child_index = _GUICtrlTreeView_Index($TreeView31, _GUICtrlTreeView_GetSelection($TreeView31))
							$parent_index = _GUICtrlTreeView_Index($TreeView31, _GUICtrlTreeView_GetParentHandle($TreeView31, _GUICtrlTreeView_GetSelection($TreeView31)))
							_treeAdd($parent_index, $child_index)
							_chooseCategoryForm4($child_index, $parent_index)
						EndIf
					Case $button33
						If $PicNum >= 5 Then
							MsgBox(64, 'Ошибка', 'Не более 5 изображений')
						Else
							_picset(0, 0)
						EndIf
					Case $Button35
						_picset(1, 0)
					Case $button32
						GUIDelete($form3)
						$pressed = False
				EndSwitch
			Else
			EndIf

		Case $form4 ; form4 choose subcategory begin
			If _WinAPI_IsWindowVisible($form4) = True Then
				GUISwitch($form4)
				Switch $aMsg[0]
					Case $GUI_EVENT_CLOSE
						GUIDelete($form4)
					Case $combo4[1]
						If $ubound > 1 Then
							If _GUICtrlComboBox_GetCurSel($combo4[1]) = $aSubComboIndexes[2] Then
								GUICtrlSetData($combo4[2], $sSubctg_names1[2])
							Else
								GUICtrlSetData($combo4[2], '')
							EndIf
						EndIf
					Case $button41 ; "ГОТОВО"
						;If $UBound>1 Then
						Dim $aSubctg_selectedids[1]
						For $i = 1 To $ubound
							$comboIndex = _GUICtrlComboBox_GetCurSel($combo4[$i]) - 1
							If $comboIndex >= 0 Then
								$aSubctg_id = $aSubctg_ids[$i]
								;_ArrayDisplay($aParams)
								;_ArrayDisplay($aSubctg_id)
								$sSubctg_selectedid = $aSubctg_id[$comboIndex]
								_ArrayAdd($aSubctg_selectedids, $sSubctg_selectedid)
							EndIf
						Next
						;_ArrayDisplay($aSubctg_selectedids)
						GUIDelete($form4)
				EndSwitch
			EndIf
	EndSwitch
WEnd

Func _Form2addAccount()
	#region ### START Koda GUI section ### Form=c:\koda_1.7.3.0\forms\addaccount.kxf
	$form2 = GUICreate("Form2", 331, 133 + 60, 264, 207, Default, Default, $form1)
	$Input21 = GUICtrlCreateInput("", 32, 40, 273, 21)
	$Group21 = GUICtrlCreateGroup("Введите e-mail или логин", 16, 16, 297, 65)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	$input22 = GUICtrlCreateInput("", 32, 40 + 60, 273, 21)
	$Group22 = GUICtrlCreateGroup("Введите пароль", 16, 16 + 60, 297, 65)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	$button21 = GUICtrlCreateButton("Добавить", 152, 96 + 60, 75, 25)
	$button22 = GUICtrlCreateButton("Закрыть", 240, 96 + 60, 75, 25)
	GUISetState(@SW_SHOW)
	#endregion ### END Koda GUI section ###
EndFunc   ;==>_Form2addAccount
Func _Form3addItem($checkbox3, $phone3, $title3, $category3, $description3, $price3, $images3)
	If $images3 = '' Or $images3 = 'No Image' Then
		Global $PicNum = 0, $imgArr[1]
	Else
		Global $imgArr = StringSplit($images3, '|')
		Global $PicNum = $imgArr[0]
	EndIf
	If $title3 = '' Then
		$advEditKey = 0
	Else
		$advEditKey = 1
	EndIf
	#region ### START Koda GUI section ### Form=c:\koda_1.7.3.0\forms\additem.kxf
	$form3 = GUICreate("Добавить/Редактировать объявление", 662, 517, 195, 117, Default, Default, $form1)
	$Checkbox31 = GUICtrlCreateCheckbox("Я не хочу получать вопросы от покупателей по e-mail", 8, 8, 297, 17)
	If $checkbox3 = 0 Then
		GUICtrlSetState($Checkbox31, $GUI_UNCHECKED)
	Else
		GUICtrlSetState($Checkbox31, $GUI_CHECKED)
	EndIf
	$Input31 = GUICtrlCreateInput("", 16, 48, 145, 21, $ES_NUMBER)
	GUICtrlSetTip(-1, 'Необязательный пункт' & @CRLF & 'Формат должен быть: 89123456789')
	If $phone3 = 0 Then
	Else
		GUICtrlSetData($Input31, $phone3)
	EndIf
	$button31 = GUICtrlCreateButton("Готово", 576, 416, 75, 25)
	$button32 = GUICtrlCreateButton("Закрыть", 576, 464, 75, 25)
	$Input33 = GUICtrlCreateInput("", 184, 48, 457, 21)
	GUICtrlSetLimit(-1, 50)
	GUICtrlSetData($Input33, $title3)
	$Edit31 = GUICtrlCreateEdit("", 184, 96, 457, 281)
	GUICtrlSetData($Edit31, StringReplace($description3, '|', @CRLF))
	$Group1 = GUICtrlCreateGroup("Номер телефона", 8, 32, 161, 41)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	$Group2 = GUICtrlCreateGroup("Категория", 8, 80, 161, 257)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	$Group3 = GUICtrlCreateGroup("Название", 176, 32, 473, 41)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	$Group4 = GUICtrlCreateGroup("Описание", 176, 80, 473, 305)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	$Group5 = GUICtrlCreateGroup("Цена/зарплата", 8, 344, 161, 41)
	$Input32 = GUICtrlCreateInput("", 16, 360, 145, 21)
	GUICtrlSetData($Input32, $price3)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	$Group6 = GUICtrlCreateGroup("Фотографии", 8, 392, 561, 113)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	If $advEditKey = 1 Then
		_picset(2, 1)
	EndIf
	$Button34 = GUICtrlCreateButton("Далее", 48, 304, 75, 25)
	$TreeView31 = GUICtrlCreateTreeView(16, 96, 145, 201, BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
	GUICtrlSetTip(-1, 'Выберите подпункт и' & @CRLF & 'нажмите "Далее"')
	_treeAdd(False, False)
	$button33 = GUICtrlCreateButton("Обзор...", 480, 416, 75, 25)
	$Button35 = GUICtrlCreateButton("Очистить", 480, 464, 75, 25)
	If $category3 = '' Then
	Else
		;$03 = StringRegExp($category3, '(?si)(.*?)\|[0-9]+?\|', 1)
		;$13 = StringRegExp($category3, '(?si)[аА-яЯ]+?\|[0-9]+?\|(.*?)\|[0-9]+?\|?', 1)
		;	_GUICtrlTreeView_SelectItem($TreeView31, _GUICtrlTreeView_FindItem($TreeView31, $03[0]))
		;		_GUICtrlComboBox_SetCurSel($combo41, $comboSelectedText)
	EndIf
	GUISetState(@SW_SHOW)
	#endregion ### END Koda GUI section ###
EndFunc   ;==>_Form3addItem
Func _advWrite($advEditing)
	Dim $sections[7] = ['emailme', 'phone', 'Title', 'category', 'Description', 'price', 'Images']
	Dim $values[1]
	If GUICtrlRead($Checkbox31) = $GUI_CHECKED Then ; уведомление по имайл
		_ArrayAdd($values, 1)
	Else
		_ArrayAdd($values, 0)
	EndIf
	$phone = GUICtrlRead($Input31) ; телефон
	If StringRegExp($phone, '([0-9]{11})', 0) = 1 Then
		_ArrayAdd($values, $phone)
	Else
		If GUICtrlRead($Input31) = '' Then
			_ArrayAdd($values, 0)
		Else
			MsgBox(0, 'Ошибка', 'Формат номера должен быть 8ххххххххх (11 знаков)')
			Return
		EndIf
	EndIf
	$title = GUICtrlRead($Input33) ; тайтл
	If $title = '' Then
		MsgBox(0, 'Ошибка', 'Вы не ввели название объявления')
		Return
	Else
		_ArrayAdd($values, GUICtrlRead($Input33))
	EndIf
	If $pressed = True Then ; категория
		$localString = $child_text & '|' & 'ctg=' & $child
		For $i5 = 1 To $ubound
			$localString &= '|' & 'param' & $i5 & '=' & $aParams[$i5] & '|' & 'subctg' & $i5 & '=' & $aSubctg_selectedids[$i5]
		Next
		;ConsoleWrite($localString&@LF)
		_ArrayAdd($values, $localString)
	Else
		MsgBox(0, 'Ошибка', 'Вы не выбрали подкатегорию' & @CRLF & 'Нажмите кнопку "Далее" и выберите подкатегорию')
		Return
	EndIf
	If GUICtrlRead($Edit31) = '' Then ; описание
		MsgBox(0, 'Ошибка', 'Вы не ввели описание объявления')
		Return
	Else
		_ArrayAdd($values, StringReplace(GUICtrlRead($Edit31), @CRLF, '|'))
	EndIf
	If GUICtrlRead($Input32) = '' Then ; цена
		MsgBox(0, 'Ошибка', 'Вы не ввели цену/зарплату')
		Return
	Else
		_ArrayAdd($values, GUICtrlRead($Input32))
	EndIf
	If UBound($imgArr) < 2 Then
		$imgStr = 'No Image'
	Else
		$imgStr = $imgArr[1] ; картинки
		For $i = 2 To UBound($imgArr) - 1
			$imgStr &= '|' & $imgArr[$i]
		Next
	EndIf
	_ArrayAdd($values, $imgStr)
	_ArrayDelete($values, 0)
	;_ArrayDisplay($values)
	$advIndex = IniReadSectionNames(@ScriptDir & '\ads\adsIndex.Ini')
	If @error Then
		$advLast = 0
	Else
		$advLast = _ArrayMax($advIndex, 1)
	EndIf
	Select
		Case $advEditing = 0
			_FileWriteFromArray(@ScriptDir & '\ads\adv' & $advLast + 1 & '.Txt', $values)
			IniWrite(@ScriptDir & '\ads\adsIndex.Ini', $advLast + 1, 'Title', $title)
			_GUICtrlListBox_AddString($List2, $title & ' [' & $advLast + 1 & ']')
			$functionCompleted = 1
			Return
		Case $advEditing = 1
			$advStringToEdit = _GUICtrlListBox_GetCurSel($List2)
			$advSelectedTitle = _GUICtrlListBox_GetText($List2, $advStringToEdit)
			$advTitleIndex = StringRegExp($advSelectedTitle, '(?si)\[([0-9]*?)\]', 1)
			IniWrite(@ScriptDir & '\ads\adsIndex.Ini', $advTitleIndex[0], 'Title', $title)
			_FileWriteFromArray(@ScriptDir & '\ads\adv' & $advTitleIndex[0] & '.Txt', $values)
			_GUICtrlListBox_ReplaceString($List2, $advStringToEdit, $title & ' [' & $advTitleIndex[0] & ']')
			$functionCompleted = 1
			Return
	EndSelect
	$pressed = False
	$functionCompleted = 1
	Return
EndFunc   ;==>_advWrite
Func _advRead($advRead, $advEdit, $advStringToEdit, $advSend, $advCopy)
	$advIndex = IniReadSectionNames(@ScriptDir & '\ads\adsIndex.Ini')
	If @error Then
		Return
	Else
		Select
			Case $advRead = 1
				For $u = 1 To UBound($advIndex) - 1
					If $advIndex[$u] = 'Cities' Or $advIndex[$u] = 'Accounts' Then
					Else
						_GUICtrlListBox_AddString($List2, IniRead(@ScriptDir & '\ads\adsIndex.Ini', $advIndex[$u], 'Title', Default) & ' [' & $advIndex[$u] & ']')
					EndIf
				Next
				Return
			Case $advEdit = 1 Or $advSend = 1
				$advSelectedTitle = _GUICtrlListBox_GetText($List2, $advStringToEdit)
				$advTitleIndex = StringRegExp($advSelectedTitle, '(?si)\[([0-9]*?)\]', 1)
				Dim $advToedit
				_FileReadToArray(@ScriptDir & '\ads\adv' & $advTitleIndex[0] & '.Txt', $advToedit)
				If $advSend = 0 Then
					_Form3addItem($advToedit[1], $advToedit[2], $advToedit[3], $advToedit[4], $advToedit[5], $advToedit[6], $advToedit[7])
				Else
					_sendData($advToedit[1], $advToedit[2], $advToedit[3], $advToedit[4], $advToedit[5], $advToedit[6], $advToedit[7], 0)
				EndIf
		EndSelect
	EndIf
EndFunc   ;==>_advRead
Func _treeAdd($parent_index, $child_index)
	Dim $trees[8] = ["Транспорт", "Недвижимость", "Личные вещи", "Для дома и дачи", "Бытовая электроника", "Хобби и отдых", "Животные", "Работа и бизнес"]
	Dim $auto[6] = ["Автомобили с пробегом", "Новые автомобили", "Мотоциклы и мототехника", "Грузовики и спецтехника", "Водный транспорт", "Запчасти и аксессуары"], $autoid[6] = ["9", "109", "14", "81", "11", "10"]
	Dim $property[7] = ["Квартиры", "Комнаты", "Дома, дачи, коттеджи", "Земельные участки", "Гаражи и машиноместа", "Коммерческая недвижимость", "Недвижимость за рубежом"], $propertyid[7] = ["24", "23", "25", "26", "85", "42", "86"]
	Dim $stuff[5] = ["Одежда, обувь, аксессуары", "Детская одежда и обувь", "Товары для детей и игрушки", "Часы и украшения", "Красота и здоровье"], $stuffid[5] = ["27", "29", "30", "28", "88"]
	Dim $home[5] = ["Бытовая техника", "Мебель и интерьер", "Посуда и товары для кухни", "Ремонт и строительство", "Растения"], $homeid[5] = ["21", "20", "87", "19", "106"]
	Dim $electr[9] = ["Аудио и видео", "Игры, приставки и программы", "Настольные компьютеры", "Ноутбуки", "Оргтехника и расходники", "Планшеты и электронные книги", "Телефоны", "Товары для компьютера", "Фототехника"], $electrid[9] = ["32", "97", "31", "98", "99", "96", "84", "101", "105"]
	Dim $hobby[8] = ["Билеты и путешествия", "Велосипеды", "Книги и журналы", "Коллекционирование", "Музыкальные инструменты", "Охота и рыбалка", "Спорт и отдых", "Знакомства"], $hobbyid[8] = ["33", "34", "83", "36", "38", "102", "39", "103"]
	Dim $animals[6] = ["Собаки", "Кошки", "Птицы", "Аквариум", "Другие животные", "Товары для животных"], $animalsid[6] = ["89", "90", "91", "92", "93", "94"]
	Dim $business[4] = ["Работа", "Услуги", "Оборудование для бизнеса", "Продукты питания"], $businessid[4] = ["104", "43", "40", "82"]
	Dim $subcategories[8] = [$auto, $property, $stuff, $home, $electr, $hobby, $animals, $business]
	If $parent_index = False And $child_index = False Then
		Dim $tree[8]
		For $i = 0 To UBound($trees) - 1
			$tree[$i] = _GUICtrlTreeView_Add($TreeView31, 0, $trees[$i])
		Next
		For $k = 0 To 7
			$sub = $subcategories[$k]
			For $l = 0 To UBound($sub) - 1
				_GUICtrlTreeView_AddChild($TreeView31, $tree[$k], $sub[$l])
			Next
		Next
	Else
		Dim $subcategories_id[8] = [$autoid, $propertyid, $stuffid, $homeid, $electrid, $hobbyid, $animalsid, $businessid]
		;$parent = $trees[$parent_index]
		$sub = $subcategories_id[$parent_index]
		$child = $sub[$child_index]
		$sub_text = $subcategories[$parent_index]
		$child_text = $sub_text[$child_index]
		;MsgBox(0,'',$parent&''&$child)
	EndIf
EndFunc   ;==>_treeAdd

Файл: Avito_project.zip
На всякий случай отдельно выкладываю все инклуды:
Includes.zip

Снимок:



Источник: autoit-script.ru
Автор: valldar
 
Верх