Recent Posts

Pages: [1] 2 3 ... 10
1
Лог с момента перезапуска миранды (после отправки другого сообщения)
Code: [Select]
<iq type="set" id="mir2d852e9ba39808c1_1"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>Miranda</resource></bind></iq>
[2025-12-07 21:19:36 1544] [JABBER_2] bytesParsed = 602
[2025-12-07 21:19:36 1544] [JABBER_2] (00000000059F9A00:988) Data received
<iq id='mir2d852e9ba39808c1_1' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>*****@jabbers.one/Miranda</jid></bind></iq>
[2025-12-07 21:19:36 1544] [JABBER_2] recvResult = 146
[2025-12-07 21:19:36 1544] [JABBER_2] Result Bind: *****@jabbers.one/Miranda confirmed
[2025-12-07 21:19:36 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="set" id="mir2d852e9ba39808c1_2"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>
[2025-12-07 21:19:36 1544] [JABBER_2] bytesParsed = 146
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<iq id='mir2d852e9ba39808c1_2' to='*****@jabbers.one/Miranda' type='result'/>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 83
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="get" id="mir2d852e9ba39808c1_3"><query xmlns="jabber:iq:private"><roster xmlns="roster:delimiter"/></query></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="get" id="mir2d852e9ba39808c1_4"><query xmlns="jabber:iq:private"><storage xmlns="storage:bookmarks"/></query></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="get" to="*****@jabbers.one" id="mir2d852e9ba39808c1_5"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="get" id="mir2d852e9ba39808c1_6"><query xmlns="jabber:iq:privacy"/></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<enable xmlns="urn:xmpp:sm:3" resume="true"/>
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 83
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<iq id='mir2d852e9ba39808c1_3' to='*****@jabbers.one/Miranda' type='result'><query xmlns='jabber:iq:private'><roster xmlns='roster:delimiter'>\</roster></query></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 171
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="set" id="mir2d852e9ba39808c1_7"><query xmlns="jabber:iq:private"><roster xmlns="roster:delimiter">\</roster></query></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="get" id="mir2d852e9ba39808c1_8"><query xmlns="jabber:iq:roster"/></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 171
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<iq id='mir2d852e9ba39808c1_4' to='*****@jabbers.one/Miranda' type='result'><query xmlns='jabber:iq:private'><storage xmlns='storage:bookmarks'/></query></iq><iq id='mir2d852e9ba39808c1_5' to='*****@jabbers.one/Miranda' type='result' from='*****@jabbers.one'><query xmlns='http://jabber.org/protocol/disco#info'><identity type='registered' category='account'/><feature var='http://jabber.org/protocol/disco#info'/><feature var='http://jabber.org/protocol/disco#items'/><feature var='tigase:push:filter:ignore-unknown:0'/><feature var='tigase:push:filter:muted:0'/><feature var='tigase:push:filter:groupchat:0'/><feature var='urn:xmpp:bookmarks:1#compat'/><feature var='urn:xmpp:bookmarks:1#compat-pep'/><feature var='urn:xmpp:bookmarks-conversion:0'/><feature var='urn:xmpp:push:0'/><feature var='tigase:push:encrypt:0'/><feature var='tigase:push:encrypt:aes-128-gcm'/><feature var='tigase:push:jingle:0'/><identity type='pep' category='pubsub'/><feature var='http://jabber.org/protocol/pubsub'/><feature var='http://jabber.org/protocol/pubsub#create-and-configure'/><feature var='http://jabber.org/protocol/pubsub#meta-data'/><feature var='http://jabber.org/protocol/pubsub#access-presence'/><feature var='http://jabber.org/protocol/pubsub#delete-nodes'/><feature var='http://jabber.org/protocol/pubsub#multi-items'/><feature var='http://jabber.org/protocol/pubsub#retract-items'/><feature var='http://jabber.org/protocol/pubsub#config-node'/><feature var='http://jabber.org/protocol/pubsub#auto-subscribe'/><feature var='http://jabber.org/protocol/pubsub#instant-nodes'/><feature var='http://jabber.org/protocol/pubsub#presence-notifications'/><feature var='http://jabber.org/protocol/pubsub#subscribe'/><feature var='http://jabber.org/protocol/pubsub#publish-options'/><feature var='http://jabber.org/protocol/pubsub#member-affiliation'/><feature var='http://jabber.org/protocol/pubsub#item-ids'/><feature var='http://jabber.org/protocol/pubsub#retrieve-subscriptions'/><feature var='http://jabber.org/protocol/pubsub#retrieve-
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 2048
[2025-12-07 21:19:37 1544] [JABBER_2] parsing error 7: Error=XML_ERROR_PARSING_ATTRIBUTE ErrorID=7 (0x7) Line number=1: XMLElement name=feature
[2025-12-07 21:19:37 1544] [JABBER_2] Increasing network buffer size to 4096
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
items'/><feature var='http://jabber.org/protocol/pubsub#filtered-notifications'/><feature var='http://jabber.org/protocol/pubsub#publish'/><feature var='http://jabber.org/protocol/pubsub#purge-nodes'/><feature var='http://jabber.org/protocol/pubsub#modify-affiliations'/><feature var='http://jabber.org/protocol/pubsub#auto-create'/><feature var='http://jabber.org/protocol/pubsub#presence-subscribe'/><feature var='http://jabber.org/protocol/pubsub#last-published'/><feature var='http://jabber.org/protocol/pubsub#create-nodes'/><feature var='http://jabber.org/protocol/pubsub#subscription-options'/><feature var='http://jabber.org/protocol/pubsub#retrieve-default'/><feature var='http://jabber.org/protocol/pubsub#config-node-max'/><feature var='http://jabber.org/protocol/pubsub#outcast-affiliation'/><feature var='http://jabber.org/protocol/pubsub#delete-items'/><feature var='http://jabber.org/protocol/pubsub#publisher-affiliation'/><feature var='http://jabber.org/protocol/pubsub#persistent-items'/><feature var='urn:xmpp:pep-vcard-conversion:0'/><feature var='urn:xmpp:mam:2'/><feature var='urn:xmpp:mam:2#extended'/><feature var='urn:xmpp:sid:0'/><feature var='tigase:push:priority:0'/><feature var='urn:ietf:params:xml:ns:vcard-4.0'/></query></iq><iq id='mir2d852e9ba39808c1_6' to='*****@jabbers.one/Miranda' type='error'><error type='cancel'><service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq><enabled id='**' xmlns='urn:xmpp:sm:3' max='3600' resume='true'/>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 1513
[2025-12-07 21:19:37 1544] [JABBER_2] <iq/> iqIdGetBookmarks
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="get" id="mir2d852e9ba39808c1_9"><pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="eu.siacs.conversations.axolotl.devicelist"/></pubsub></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 3561
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<iq id='mir2d852e9ba39808c1_7' to='*****@jabbers.one/Miranda' type='result'/><iq id='mir2d852e9ba39808c1_8' to='*****@jabbers.one/Miranda' type='result'><query ver='6' xmlns='jabber:iq:roster'><item subscription='both' jid='*****@*****' name='*****'><group>***** (personal)</group></item></query></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 318
[2025-12-07 21:19:37 1544] [JABBER_2] <iq/> iqIdGetRoster
[2025-12-07 21:19:37 1544] [JABBER_2] Status changed via THREADSTART
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<presence><priority>0</priority><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://miranda-ng.org/caps" ver="***" ext="omemo x64 mood tune activity jingle"/><x xmlns="vcard-temp:x:update"><photo/></x><x xmlns="miranda:x:vcard">***</x><status>Yep, I'm here.</status></presence>
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="set" id="mir2d852e9ba39808c1_10"><enable xmlns="urn:xmpp:carbons:2"/></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="get" id="mir2d852e9ba39808c1_11"><prefs xmlns="urn:xmpp:mam:2"/></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 318
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<iq id='mir2d852e9ba39808c1_9' to='*****@jabbers.one/Miranda' type='result'><pubsub xmlns='http://jabber.org/protocol/pubsub'><items node='eu.siacs.conversations.axolotl.devicelist'><item id='current' xmlns='http://jabber.org/protocol/pubsub'><list xmlns='eu.siacs.conversations.axolotl'><device id='**'/></list></item></items></pubsub></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 354
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 354
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<message id='2j5KdEBxjHNLRC9AaekK9i-4' to='*****@jabbers.one/Miranda' from='*****@jabbers.one' type='headline'><event xmlns='http://jabber.org/protocol/pubsub#event'><items node='eu.siacs.conversations.axolotl.devicelist'><item id='current'><list xmlns='eu.siacs.conversations.axolotl'><device id='**'/></list></item></items></event></message><message id='***' to='*****@jabbers.one/Miranda' from='*****@jabbers.one' type='headline'><event xmlns='http://jabber.org/protocol/pubsub#event'><items node='http://jabber.org/protocol/tune'><item id='**'><tune xmlns='http://jabber.org/protocol/tune'/></item></items></event></message><presence xml:lang='en' from='*****@jabbers.one/Miranda'><priority>0</priority><c ext='omemo x64 mood tune activity jingle' hash='sha-1' ver='**' node='http://miranda-ng.org/caps' xmlns='http://jabber.org/protocol/caps'/><x xmlns='vcard-temp:x:update'><photo/></x><x xmlns='miranda:x:vcard'>***</x><status>Yep, I&apos;m here.</status></presence><iq id='***' to='*****@jabbers.one/Miranda' type='get' from='jabbers.one'><query node='http://miranda-ng.org/caps#3Q6LuoXYX2XF2WkuiEmCMIUxR/0=' xmlns='http://jabber.org/protocol/disco#info'/></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 1355
[2025-12-07 21:19:37 1544] [JABBER_2] Handling message from *****@jabbers.one
[2025-12-07 21:19:37 1544] [JABBER_2] permanent message handler succeeded, returning
[2025-12-07 21:19:37 1544] [JABBER_2] Handling message from *****@jabbers.one
[2025-12-07 21:19:37 1544] [JABBER_2] permanent message handler succeeded, returning
[2025-12-07 21:19:37 1544] [JABBER_2] SKIP Receive presence online from *****@jabbers.one/Miranda (who is not in my roster and not in list - skipping)
[2025-12-07 21:19:37 1544] [JABBER_2] Handling iq id ***, type get, from jabbers.one
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="result" to="jabbers.one" id="***"><query xmlns="http://jabber.org/protocol/disco#info" node="http://miranda-ng.org/caps#3Q6LuoXYX2XF2WkuiEmCMIUxR/0="><identity category="client" type="pc" name="Miranda 0.96.7"/><feature var="eu.siacs.conversations.axolotl.devicelist+notify"/><feature var="http://jabber.org/protocol/activity+notify"/><feature var="http://jabber.org/protocol/bytestreams"/><feature var="http://jabber.org/protocol/caps"/><feature var="http://jabber.org/protocol/chatstates"/><feature var="http://jabber.org/protocol/commands"/><feature var="http://jabber.org/protocol/disco#info"/><feature var="http://jabber.org/protocol/disco#items"/><feature var="http://jabber.org/protocol/ibb"/><feature var="http://jabber.org/protocol/mood+notify"/><feature var="http://jabber.org/protocol/muc"/><feature var="http://jabber.org/protocol/rosterx"/><feature var="http://jabber.org/protocol/si"/><feature var="http://jabber.org/protocol/si/profile/file-transfer"/><feature var="http://jabber.org/protocol/tune+notify"/><feature var="http://jabber.org/protocol/xhtml-im"/><feature var="jabber:iq:agents"/><feature var="jabber:iq:browse"/><feature var="jabber:iq:oob"/><feature var="jabber:iq:privacy"/><feature var="jabber:iq:private"/><feature var="jabber:iq:version"/><feature var="jabber:x:conference"/><feature var="jabber:x:data"/><feature var="jabber:x:oob"/><feature var="urn:xmpp:jingle:apps:dtls:0"/><feature var="urn:xmpp:jingle:apps:rtp:1"/><feature var="urn:xmpp:jingle:apps:rtp:audio"/><feature var="urn:xmpp:jingle:transports:ice-udp:1"/><feature var="urn:xmpp:ping"/><feature var="urn:xmpp:time"/><feature var="vcard-temp"/><x xmlns="jabber:x:data" type="result"><field var="FORM_TYPE" type="hidden"><value>urn:xmpp:dataforms:softwareinfo</value></field><field var="software"><value>Miranda NG Jabber Protocol</value></field><field var="software_version"><value>0.95.11.1</value></field><field var="x-miranda-core-version"><value>0.96.7 alpha build #4571 (8cebabb) x64</value></field></x></query></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 1355
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<message id='g1RW6uJM5ZuaiG4hoKA3_Sgg' to='*****@jabbers.one/Miranda' type='headline' from='*****@*****' xml:lang='en'><event xmlns='http://jabber.org/protocol/pubsub#event'><items node='eu.siacs.conversations.axolotl.devicelist'><item id='current'><list xmlns='eu.siacs.conversations.axolotl'><device id='**'/></list></item></items></event></message><presence xml:lang='en' to='*****@jabbers.one/Miranda' from='*****@*****/Conversations~****'><c xmlns='urn:xmpp:caps'><hash algo='sha-256' xmlns='urn:xmpp:hashes:2'>***</hash></c><c node='http://conversations.im' xmlns='http://jabber.org/protocol/caps' hash='sha-1' ver='**'/><x xmlns='vcard-temp:x:update'><photo/></x><delay xmlns='urn:xmpp:delay' from='***' stamp='2025-12-07T15:44:11Z'/></presence>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 853
[2025-12-07 21:19:37 1544] [JABBER_2] Handling message from *****@*****
[2025-12-07 21:19:37 1544] [JABBER_2] permanent message handler succeeded, returning
[2025-12-07 21:19:37 1544] [JABBER_2] JabberUpdateJidDbSettings: updating jid *****@***** to rc Conversations~***
[2025-12-07 21:19:37 1544] [JABBER_2] JabberUpdateMirVer: for rc Conversations~***: http://conversations.im#Iz9qXAzDqdWeAeTij2quhoeStyw=
[2025-12-07 21:19:37 1544] [JABBER_2] ***** (*****@*****/Conversations~***) online, set contact status to Online
[2025-12-07 21:19:37 1544] [JABBER_2] Avatar enabled
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 853
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<iq id='mir2d852e9ba39808c1_10' to='*****@jabbers.one/Miranda' type='result'/><iq id='mir2d852e9ba39808c1_11' to='*****@jabbers.one/Miranda' type='result'><prefs default='always' xmlns='urn:xmpp:mam:2'><always/><never/></prefs></iq><r xmlns='urn:xmpp:sm:3'/>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 270
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<iq type="set" id="mir2d852e9ba39808c1_12"><query xmlns="urn:xmpp:mam:2"><set xmlns="http://jabber.org/protocol/rsm"><max>1000</max><after>2025-12-07-feff4b0997d002b7</after></set></query></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] strm_mgmt: info: sending ack: locally received node count 11
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data sent
<a xmlns="urn:xmpp:sm:3" h="11"/>
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 270
[2025-12-07 21:19:37 1544] [JABBER_2] (00000000059F9A00:988) Data received
<message to='*****@jabbers.one/Miranda'><result id='2025-12-07-6324b61deea75d47' xmlns='urn:xmpp:mam:2'><forwarded xmlns='urn:xmpp:forward:0'><delay stamp='2025-12-07T17:53:21.337671Z' xmlns='urn:xmpp:delay'/><message id='mirf375aa406d8a497f_133' to='*****@*****/Conversations~***' xmlns='jabber:client' xml:lang='en' from='*****@jabbers.one/Miranda'><body>I sent you an OMEMO encrypted message but your client doesn&apos;t seem to support that</body><encrypted xmlns='eu.siacs.conversations.axolotl'><payload>***</payload><header sid='**'><key rid='***'>*</key><iv>*</iv></header></encrypted><store xmlns='urn:xmpp:hints'/></message></forwarded></result></message><iq id='mir2d852e9ba39808c1_12' to='*****@jabbers.one/Miranda' type='result'><fin complete='true' xmlns='urn:xmpp:mam:2'><set xmlns='http://jabber.org/protocol/rsm'><first>2025-12-07-6324b61deea75d47</first><last>2025-12-07-6324b61deea75d47</last></set></fin></iq>
[2025-12-07 21:19:37 1544] [JABBER_2] recvResult = 1145
[2025-12-07 21:19:37 1544] [JABBER_2] bytesParsed = 1145
[2025-12-07 21:19:37 110C] M-SEARCH * HTTP/1.1
HOST: ***
MAN: "ssdp:discover"
MX: 1
ST: urn:schemas-upnp-org:service:WANIPConnection:1
[close]
2
Support/Help / Re: New Message Sessions steal focus - when typing
« Last post by dartraiden on Today at 17:49:42 »
Well I did some tests

Unchecking all options except "Automatically create new sessions without activating them" is doing exactly what you want

Focus is staying on current message typing area.

For some reason the window title changes, but this is a minor bug
3
Одно из исходящих сообщений в логе (от 28.11) почему-то отображается нормально
потому что на него почему-то не отослали карбонку
4
Alex79,
не... оно может прилетать сильно позже
надо подержать лог, пока сообщение не искривится, и сделать выборку пакетов, где есть такой же id="mir_blablabla", как в отправленном сообщении
5
Привет, актуально. Одно из исходящих сообщений в логе (от 28.11) почему-то отображается нормально. Возможно когда собеседник был онлайн во время отправки.
После отправки сообщения и перезапуска миранды, если получатель оффлайн то от него всегда прилетает Pop-up: "...has stopped typing."

Лог отправки сообщения
Code: [Select]
[2025-12-07 17:43:12 1490] [JABBER_2] (0000000005BDDFC0:960) Data sent
<message to="*" id="*"><body>I sent you an OMEMO encrypted message but your client doesn't seem to support that</body><encrypted xmlns="eu.siacs.conversations.axolotl"><payload>*</payload><header sid="*"><key rid="*">*</key><iv>*</iv></header></encrypted><store xmlns="urn:xmpp:hints"/></message>
[2025-12-07 17:43:26 1490] [JABBER_2] (0000000005BDDFC0:960) Data sent
<iq type="get" to="*@jabbers.one" id="*"><vCard xmlns="vcard-temp" prodid="-//HandGen//NONSGML vGen v1.0//EN" version="2.0"/></iq>
[2025-12-07 17:43:26 1834] [JABBER_2] (0000000005BDDFC0:960) Data received
<iq id='*' to='*@jabbers.one/Miranda' type='result'><vCard xmlns='vcard-temp'/></iq>
[2025-12-07 17:43:26 1834] [JABBER_2] recvResult = 115
[2025-12-07 17:43:26 1834] [JABBER_2] <iq/> iqIdGetVcard
[2025-12-07 17:43:26 1834] [JABBER_2] Vcard for myself
[2025-12-07 17:43:26 1834] [JABBER_2] Has no avatar
[2025-12-07 17:43:26 1834] [JABBER_2] bytesParsed = 115
[close]
6
Привет.

Если еще актуально, давай попробуем сделать network log (Jabber + ядро), есть подозрение, что на трубе консерва бросает карбонку на это сообщение, и эта карбонка с тем же самым message id перетирает исходящее сообщение. Основной смысл этой надписи в том, что она появляется только при расшифровке нового сообщения, т.е. собственно к исходящему сообщения она 100% никакого отношения не имеет
7
Разработка / Re: Протокол VKontakte
« Last post by Boris_M on 06 12 2025, 09:28:39 »
Elzor
Виснет Miranda при получении сообщений.создал тикет     https://github.com/miranda-ng/miranda-ng/issues/5180
начало тут https://forum.miranda-ng.org/index.php?topic=6702.15

8
Разработка / Re: Протокол VKontakte
« Last post by Thug on 06 12 2025, 04:28:40 »
Elzor, Я подумал, что моя проблема вызвана этим:
1. Задать прямо сейчас TimeoutForUsersGet = 20000, LoadCListInterval = 5, чтобы потом гарантированно стартовать уже с этими параметрами.
Вернул значения по-умолчанию - сразу словил ошибку 9  ??? Пришлось вернуть, как было.
Прогнал базу на ошибки - что-то исправилось, но это не помогло. В общем-то это не критично. Но если мне как-то удастся это решить, дам знать.
9
Support/Help / Re: New Message Sessions steal focus - when typing
« Last post by dartraiden on 05 12 2025, 19:11:31 »
This option should help, but it seems broken...

Ticket created.
10
И что дальше делать?
вероятно, создать тикет, приложить туда эту картинку, поставить Elzor как ответственного и подождать, пока он разберется
Pages: [1] 2 3 ... 10