From 87a9d4fd46a01fcb8d9204f0522174287736499b Mon Sep 17 00:00:00 2001 From: Israel Hernandez Date: Fri, 17 Feb 2023 21:37:51 -0800 Subject: [PATCH] Time-seal Unix: Squashed commit of the following: commit 473ce7c23a6096185fcfd44836ab49935c700606 Merge: 570d0f54 6739fba6 Author: Israel Hernandez Date: Fri Feb 17 09:58:26 2023 -0800 Merge branch 'master' into timeseal-unix commit 570d0f547b27a235bd402ff9c643ee7fc536f027 Author: Israel Date: Sun Aug 29 07:45:14 2021 -0700 Revert "Merge branch 'fics-whitepieces-bugfix' into timeseal-unix" This reverts commit bfcfe60b4b4e01f4cfacde0a129f1101cebe43ab, reversing changes made to 9960b100e88eda02df0640e665c420a842baef35. commit 727eff103fa45f51feabee0f9dbfd3cb789d48f4 Merge: 2ec15edf 0d19c71d Author: Israel Date: Sun Aug 29 07:03:53 2021 -0700 Merge branch 'master' into timeseal-unix fixes merging conflicts commit 2ec15edf5e341e87658c627457542e6a8e89c8e6 Merge: 84fb49e7 83fc62c6 Author: Israel Hernandez Date: Fri Aug 27 13:26:53 2021 -0700 Merge branch 'master' into timeseal-unix fixes merge conflict commit 84fb49e7993030f76ceace7d9c585aab50c81c0e Merge: bfcfe60b a9136e52 Author: Israel Hernandez Date: Fri Aug 27 11:38:42 2021 -0700 Merge branch 'master' into timeseal-unix fixes merge conflict commit bfcfe60b4b4e01f4cfacde0a129f1101cebe43ab Merge: 9960b100 14e648a1 Author: Israel Hernandez Date: Sun Aug 22 19:34:00 2021 -0700 Merge branch 'fics-whitepieces-bugfix' into timeseal-unix commit 14e648a16f609537f058b15f90bbe78999b13560 Author: Israel Hernandez Date: Sun Aug 22 19:32:48 2021 -0700 Add Plastik as a Selectable Appearance Theme commit ca429bec6cdede0cd93488b7fd8aaa95fc6308a1 Author: Israel Hernandez Date: Sun Aug 22 19:07:57 2021 -0700 Change default Theme to Adwaita commit 9960b100e88eda02df0640e665c420a842baef35 Merge: 35e75e99 46e84e41 Author: Israel Hernandez Date: Sun Aug 22 19:06:35 2021 -0700 Merge branch 'master' into timeseal-unix commit 35e75e9933fb48f25d6312989fe884a787f0e552 Author: Israel Date: Fri Aug 20 09:06:02 2021 -0700 silent timeseal compilation commit a12fa6443d19a69875981b40ce0754bb4728d829 Author: Israel Hernandez Date: Thu Aug 19 17:07:58 2021 -0700 updates timeseal commit fa2f7adca3dd790c77c0e6f37de65777388f862f Author: Israel Hernandez Date: Mon Aug 16 19:42:21 2021 -0700 Update help information for FICS connection It gives more information about timeseal connectivity, and displays the FICS Online timeseal pixmap in the help information commit ab56850514dca8dfeb2d275b7d4a15c474dfc162 Author: Israel Hernandez Date: Mon Aug 16 17:16:01 2021 -0700 FICS online icon; * FICS online icon displayed when connected via telnet * FICS online _timeseal_ icon displayed when connected via timeseal * Preferences UI updated Try to use Timeseal -> Use timeseal * Translations sources changed to reflect this commit 6b71c20f5ba24c2284f43376ca3a083fabe882bb Author: Israel Hernandez Date: Mon Aug 16 14:09:32 2021 -0700 timeseal version in data as a link to compiled version in release commit 3fadec3f85b2e875d2098df613ca203cf26ade3e Author: Israel Hernandez Date: Mon Aug 16 13:46:56 2021 -0700 Update INSTALL.md commit d45517c36baaf32a245014562af3716dd317fbfc Author: Israel Hernandez Date: Mon Aug 16 13:45:48 2021 -0700 Update INSTALL.md commit 2a1812a0a3355b3a1676830275954ee9064bb16e Author: Israel Hernandez Date: Mon Aug 16 13:41:06 2021 -0700 Update INSTALL.md to reflect timeseal compilation commit 9dfe79f94422508d856b54b3d65605222f177a6b Merge: fcf23aa4 af8e11e5 Author: Israel Hernandez Date: Mon Aug 16 13:39:44 2021 -0700 Merge remote-tracking branch 'origin/INSTALL_edits' into timeseal-unix commit fcf23aa49b358d3896c47ca6a5014248d1b8a1d9 Author: Israel Hernandez Date: Mon Aug 16 13:33:02 2021 -0700 add a pro file for timeseal commit e3a5cdf41277e77996aabf32aabfd2d8e057f6c6 Author: Israel Hernandez Date: Mon Aug 16 13:25:16 2021 -0700 correct compilation warning, unsigned integer comparison commit 9f7ecb31160b4d3b381859e9a02d5500ac8ed82d Author: Israel Hernandez Date: Sun Aug 15 22:03:21 2021 -0700 Temporary Hack: Introduce a compiled binary of ZSeal Qmake is not friendly to configure 2 targets, therefore configuring compilation of ZSeal as a new target with a pro file is not as simple as it should be, Therefore, I am temporarily adding a timeseal precompiled binary in 'data' commit e1a0ecb64e40037fce2e50bcb2106882eecb04ed Author: Israel Hernandez Date: Sun Aug 15 21:32:45 2021 -0700 Fics console Tables populated on timeseal The initial message of CMD is a numeric indicating what kind of command is executed (cmd). This value was only properly parsed if connected via telnet, this commit eliminates that conditional so it parses for both telnet and timeseal commit 79ad9aaec678ee876346a7a3fa82b307ed4d12c6 Author: Israel Hernandez Date: Sun Aug 15 11:56:22 2021 -0700 Introduce timeseal srcs Timeseal sources from Felipe Bergo's implementation zseal (MIT license) found at: https://github.com/fbergo/zseal commit 3d559111700606449cf687ad32f78061354b7696 Author: Israel Hernandez Date: Sun Aug 15 10:42:51 2021 -0700 Linux; Timeseal path Add the path for UNIX for timeseal, located in the same dir as chessx binary commit 5fad4f196e0db6701078939f99abd06f87962ff6 Merge: 62df5519 09084c48 Author: Israel Hernandez Date: Thu Aug 12 20:48:38 2021 -0700 Merge pull request #1 from IAHM-COL/fics-toggle-mod Fics toggle mod commit 09084c486b07a0a31fd7d30b4e93ee53e9fe38e7 Author: Israel Hernandez Date: Thu Aug 12 12:22:58 2021 -0700 Fics Toggle Double Function The Fics Toggle executes a disconnect FICS when is checked, connecting otherwise commit 8ed4596d70da8eac4a84b8627587b00554c9b1cc Author: Israel Hernandez Date: Thu Aug 12 09:15:07 2021 -0700 Fics toggle security disabling The Fics toggle will become disable when its pressed to connect to FICS, and will only become active again if connection is established succesfully. At this point the pixmap is upated to indicate active connection commit 0c8a9858cb22f039484eeb64cc718ea312cb78e0 Author: Israel Hernandez Date: Thu Aug 12 08:57:04 2021 -0700 Change pixmap enabled commit 62df551993593bbaad50893e0a9d48cd121cc6ab Author: Israel Hernandez Date: Tue Aug 10 21:43:29 2021 -0700 Icon size in Help Increasing the size of the Icons in the Help menu from 42 to 64 px width commit c4aef84d40eeec2c0d0c7d06ee391a397adce3f2 Author: Israel Hernandez Date: Tue Aug 10 21:31:11 2021 -0700 Implement new connection Icons commit 230f9f4b3e6bbd144c5f1f9e77a5e63f05f11295 Author: Israel Hernandez Date: Tue Aug 10 21:15:15 2021 -0700 Connection Icons and Src * Updates the Connection Icons for FICS * Updates the Fetch Icons for FICS Lichess and chesscom * Stores SVGs as Source files in the src folder commit df3a4611743660e4d82e265f745ae41d29eedfed Merge: 519d9b83 132d9164 Author: Israel Hernandez Date: Tue Aug 10 20:18:49 2021 -0700 Merge branch 'resize-toolbar-icons' commit 519d9b833dd7f70c6aac549e5ef07c720dd6bc4d Author: Israel Hernandez Date: Sun Aug 8 22:10:09 2021 -0700 new servers online-offline icon set --- INSTALL.md | 10 + data/images/chesscom.png | Bin 3247 -> 0 bytes data/images/chesscom_fetch.png | Bin 0 -> 21858 bytes data/images/fics.png | Bin 4603 -> 0 bytes data/images/fics_fetch.png | Bin 0 -> 22517 bytes data/images/fics_offline.png | Bin 0 -> 21854 bytes data/images/fics_online.png | Bin 0 -> 21953 bytes data/images/fics_online_timeseal.png | Bin 0 -> 29183 bytes data/images/lichess.png | Bin 8915 -> 0 bytes data/images/lichess_fetch.png | Bin 0 -> 18875 bytes data/images/src/chesscom_fetch.svg | 217 +++++++++++++++++ data/images/src/fics_fetch.svg | 206 ++++++++++++++++ data/images/src/fics_offline.svg | 216 +++++++++++++++++ data/images/src/fics_online.svg | 216 +++++++++++++++++ data/images/src/fics_online_timeseal.svg | 221 +++++++++++++++++ data/images/src/lichess_fetch.svg | 173 ++++++++++++++ data/timeseal/unix/README.md | 1 + data/timeseal/unix/mit.md | 1 + data/timeseal/unix/timeseal | 1 + i18n/chessx_cz.ts | 2 +- i18n/chessx_da.ts | 2 +- i18n/chessx_es.ts | 2 +- i18n/chessx_fr.ts | 2 +- i18n/chessx_it.ts | 2 +- i18n/chessx_nl.ts | 2 +- i18n/chessx_pl.ts | 2 +- i18n/chessx_pt_BR.ts | 2 +- i18n/chessx_ro.ts | 2 +- i18n/chessx_ru.ts | 2 +- i18n/chessx_zh.ts | 2 +- resources.qrc | 9 +- src/database/ficsclient.cpp | 12 +- src/database/settings.cpp | 4 +- src/dialogs/preferences.ui | 2 +- src/gui/mainwindow.cpp | 48 +++- src/gui/mainwindow.h | 5 + src/timeseal/Changelog.md | 4 + src/timeseal/README.md | 26 ++ src/timeseal/config.h | 2 + src/timeseal/mit.md | 26 ++ src/timeseal/zseal.c | 291 +++++++++++++++++++++++ timeseal.pro | 37 +++ 42 files changed, 1723 insertions(+), 27 deletions(-) delete mode 100644 data/images/chesscom.png create mode 100644 data/images/chesscom_fetch.png delete mode 100644 data/images/fics.png create mode 100644 data/images/fics_fetch.png create mode 100644 data/images/fics_offline.png create mode 100644 data/images/fics_online.png create mode 100644 data/images/fics_online_timeseal.png delete mode 100644 data/images/lichess.png create mode 100644 data/images/lichess_fetch.png create mode 100644 data/images/src/chesscom_fetch.svg create mode 100644 data/images/src/fics_fetch.svg create mode 100644 data/images/src/fics_offline.svg create mode 100644 data/images/src/fics_online.svg create mode 100644 data/images/src/fics_online_timeseal.svg create mode 100644 data/images/src/lichess_fetch.svg create mode 120000 data/timeseal/unix/README.md create mode 120000 data/timeseal/unix/mit.md create mode 120000 data/timeseal/unix/timeseal create mode 100644 src/timeseal/Changelog.md create mode 100644 src/timeseal/README.md create mode 100644 src/timeseal/config.h create mode 100644 src/timeseal/mit.md create mode 100644 src/timeseal/zseal.c create mode 100644 timeseal.pro diff --git a/INSTALL.md b/INSTALL.md index 6217dae8c..3458526ea 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -63,6 +63,16 @@ If compilation finishes successfully, the executable will be found as: release/chessx +## 4.2 Compilation of timeseal in Linux x64 systems + +In order to compile timeseal, to be used in Linux x64, prepare with + + qmake-qt5 timeseal.pro + +then compile with + + make + # 5. Problems diff --git a/data/images/chesscom.png b/data/images/chesscom.png deleted file mode 100644 index 5dfaf47e0249de1abce4e8ed33c3d4616ad667cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3247 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 literal 0 HcmV?d00001 diff --git a/data/images/fics.png b/data/images/fics.png deleted file mode 100644 index 1c1deec65689353fb1cc77b8661aaf87506ca8e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4603 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 diff --git a/data/images/fics_fetch.png b/data/images/fics_fetch.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f6bb8d3dbbcf30d71e71bc2747e1984681a926 GIT binary patch literal 22517 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,`jK05ze_vDERKK-d9_}$N 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%0A9FkAHD0R_{Yy3$Ly?NelQt;igb1e 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 KMNUMnLSTX)Agmw& literal 0 HcmV?d00001 diff --git a/data/images/lichess.png b/data/images/lichess.png deleted file mode 100644 index b53f3a2bc921bdd67835e44782919769937fe298..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8915 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 T+2OB0s{quMb(G2<*o6HbLd#EH diff --git a/data/images/lichess_fetch.png b/data/images/lichess_fetch.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa260526e02a207147d2450af2da41fe055e817 GIT binary patch literal 18875 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 Vt2W!$I+y?e002ovPDHLkV1n;4n4tgw literal 0 HcmV?d00001 diff --git a/data/images/src/chesscom_fetch.svg b/data/images/src/chesscom_fetch.svg new file mode 100644 index 000000000..6f896e96a --- /dev/null +++ b/data/images/src/chesscom_fetch.svg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/data/images/src/fics_fetch.svg b/data/images/src/fics_fetch.svg new file mode 100644 index 000000000..17e859504 --- /dev/null +++ b/data/images/src/fics_fetch.svg @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/data/images/src/fics_offline.svg b/data/images/src/fics_offline.svg new file mode 100644 index 000000000..71be9ca05 --- /dev/null +++ b/data/images/src/fics_offline.svg @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/images/src/fics_online.svg b/data/images/src/fics_online.svg new file mode 100644 index 000000000..b43a05db0 --- /dev/null +++ b/data/images/src/fics_online.svg @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/images/src/fics_online_timeseal.svg b/data/images/src/fics_online_timeseal.svg new file mode 100644 index 000000000..64ede425c --- /dev/null +++ b/data/images/src/fics_online_timeseal.svg @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/images/src/lichess_fetch.svg b/data/images/src/lichess_fetch.svg new file mode 100644 index 000000000..f257c8d15 --- /dev/null +++ b/data/images/src/lichess_fetch.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/data/timeseal/unix/README.md b/data/timeseal/unix/README.md new file mode 120000 index 000000000..2deac1e33 --- /dev/null +++ b/data/timeseal/unix/README.md @@ -0,0 +1 @@ +../../../src/timeseal/README.md \ No newline at end of file diff --git a/data/timeseal/unix/mit.md b/data/timeseal/unix/mit.md new file mode 120000 index 000000000..a4658363a --- /dev/null +++ b/data/timeseal/unix/mit.md @@ -0,0 +1 @@ +../../../src/timeseal/mit.md \ No newline at end of file diff --git a/data/timeseal/unix/timeseal b/data/timeseal/unix/timeseal new file mode 120000 index 000000000..cd5490fa4 --- /dev/null +++ b/data/timeseal/unix/timeseal @@ -0,0 +1 @@ +../../../release/timeseal \ No newline at end of file diff --git a/i18n/chessx_cz.ts b/i18n/chessx_cz.ts index dbe612a7b..3f96ce173 100644 --- a/i18n/chessx_cz.ts +++ b/i18n/chessx_cz.ts @@ -4311,7 +4311,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal Zkusit použít Timeseal diff --git a/i18n/chessx_da.ts b/i18n/chessx_da.ts index e0d923bba..9cb05ba81 100644 --- a/i18n/chessx_da.ts +++ b/i18n/chessx_da.ts @@ -4419,7 +4419,7 @@ Skal jeg downloade en database? - Try to use Timeseal + Use timeseal Forsøg at bruge Timeseal diff --git a/i18n/chessx_es.ts b/i18n/chessx_es.ts index 0e373c648..5b2674b7e 100644 --- a/i18n/chessx_es.ts +++ b/i18n/chessx_es.ts @@ -4410,7 +4410,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal Intente utilziar el sello de tiempo diff --git a/i18n/chessx_fr.ts b/i18n/chessx_fr.ts index 3d9718488..42a2227d5 100644 --- a/i18n/chessx_fr.ts +++ b/i18n/chessx_fr.ts @@ -4106,7 +4106,7 @@ Dois-je télécharger une base ? - Try to use Timeseal + Use timeseal Essayer d'utiliser Timeseal diff --git a/i18n/chessx_it.ts b/i18n/chessx_it.ts index 6bdc6ef9d..5f4a2d583 100644 --- a/i18n/chessx_it.ts +++ b/i18n/chessx_it.ts @@ -4347,7 +4347,7 @@ Devo caricare un database? - Try to use Timeseal + Use timeseal Teamseal was not translated. Prova a usare Timeseal diff --git a/i18n/chessx_nl.ts b/i18n/chessx_nl.ts index e3845457c..7ba629ae6 100644 --- a/i18n/chessx_nl.ts +++ b/i18n/chessx_nl.ts @@ -4173,7 +4173,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal diff --git a/i18n/chessx_pl.ts b/i18n/chessx_pl.ts index 2c7f91150..4285c0fb8 100644 --- a/i18n/chessx_pl.ts +++ b/i18n/chessx_pl.ts @@ -4553,7 +4553,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal diff --git a/i18n/chessx_pt_BR.ts b/i18n/chessx_pt_BR.ts index 12a395abc..2862607a9 100644 --- a/i18n/chessx_pt_BR.ts +++ b/i18n/chessx_pt_BR.ts @@ -4081,7 +4081,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal diff --git a/i18n/chessx_ro.ts b/i18n/chessx_ro.ts index 69a19e382..8333c2df1 100644 --- a/i18n/chessx_ro.ts +++ b/i18n/chessx_ro.ts @@ -4122,7 +4122,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal diff --git a/i18n/chessx_ru.ts b/i18n/chessx_ru.ts index 3e6e9acbd..ec038ede2 100644 --- a/i18n/chessx_ru.ts +++ b/i18n/chessx_ru.ts @@ -4306,7 +4306,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal Попробовать использовать задержку времени diff --git a/i18n/chessx_zh.ts b/i18n/chessx_zh.ts index 0fc249def..84d893449 100644 --- a/i18n/chessx_zh.ts +++ b/i18n/chessx_zh.ts @@ -4208,7 +4208,7 @@ Shall I download a database? - Try to use Timeseal + Use timeseal diff --git a/resources.qrc b/resources.qrc index 109157fc1..ac24508ef 100644 --- a/resources.qrc +++ b/resources.qrc @@ -39,7 +39,12 @@ data/images/edit_cut.png data/images/edit_mail.png data/images/edit_paste.png - data/images/fics.png + data/images/fics_online.png + data/images/fics_online_timeseal.png + data/images/fics_offline.png + data/images/fics_fetch.png + data/images/lichess_fetch.png + data/images/chesscom_fetch.png data/images/fileopen.png data/images/filter_reset.png data/images/filter_rev.png @@ -77,8 +82,6 @@ data/images/insert_move.png data/images/internet.png data/images/button_last.png - data/images/lichess.png - data/images/chesscom.png data/images/list_add.png data/images/match.png data/images/new_board.png diff --git a/src/database/ficsclient.cpp b/src/database/ficsclient.cpp index e975912e5..646a7ac8b 100644 --- a/src/database/ficsclient.cpp +++ b/src/database/ficsclient.cpp @@ -124,11 +124,10 @@ void FicsClient::OnReceiveTelnetMessage(QString s) } ProcessUnblockedMessage(s.normalized(QString::NormalizationForm_D).trimmed()); - if (end >= 0) - { - m_cmd = BLKCMD_NULL; - } + { + m_cmd = BLKCMD_NULL; + } } void FicsClient::ProcessUnblockedMessage(QString s) @@ -138,7 +137,6 @@ void FicsClient::ProcessUnblockedMessage(QString s) if (s.startsWith("<12>")) { s.remove("<12>"); - // qDebug() << s; emit receivedBoard(m_cmd, s.trimmed()); } else if (s.startsWith('{')) @@ -184,11 +182,11 @@ void FicsClient::ProcessUnblockedMessage(QString s) } else if (m_cmd != BLKCMD_NULL) { - emit receivedMessage(m_cmd,s); + emit receivedMessage(m_cmd,s); } else { - qDebug() << "Cmd " << m_cmd << ": ignoring message: " << s; + qDebug() << "Cmd " << m_cmd << ": ignoring message: " << s; } } } diff --git a/src/database/settings.cpp b/src/database/settings.cpp index 40034f1f9..911bcb01f 100644 --- a/src/database/settings.cpp +++ b/src/database/settings.cpp @@ -130,8 +130,8 @@ QString Settings::timesealFilePath() #elif defined Q_OS_MAC QString path(AppSettings->programDataPath()); return (path + QDir::separator() + "timeseal" + QDir::separator() + "mac" + QDir::separator() + "timeseal"); -#else - return ""; +#elif defined Q_OS_UNIX + return (QCoreApplication::applicationDirPath() + QDir::separator() + "timeseal"); #endif } diff --git a/src/dialogs/preferences.ui b/src/dialogs/preferences.ui index 420a0e484..06847fc0c 100644 --- a/src/dialogs/preferences.ui +++ b/src/dialogs/preferences.ui @@ -1666,7 +1666,7 @@ - Try to use Timeseal + Use timeseal diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 858399ff5..95f25daa0 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -190,6 +190,9 @@ MainWindow::MainWindow() : QMainWindow(), connect(m_ficsConsole, SIGNAL(RequestRemoveLastMove()), this, SLOT(HandleFicsRequestRemoveMove())); connect(m_ficsClient, SIGNAL(disconnected()), SLOT(FicsDisconnected()), Qt::QueuedConnection); connect(m_ficsClient, SIGNAL(connected()), SLOT(FicsConnected()), Qt::QueuedConnection); + + + connect(m_ficsConsole, SIGNAL(RequestStoredMove()), SLOT(slotBoardStoredMove())); connect(this, SIGNAL(reconfigure()), m_ficsConsole, SLOT(slotReconfigure())); m_ficsConsole->setEnabled(false); @@ -1137,7 +1140,18 @@ void MainWindow::openChesscom() void MainWindow::openFICS() { + //Requests a terminate connection if Fics Toggle is checked + if (!ficsButton->isChecked()){ + HandleFicsCloseRequest(); + } + + //Opens Database (and connects) if Fics Toggle is unchecked + if (ficsButton->isChecked()){ + // Disable the Fics toggle while connection is being stablished + ficsButton->setEnabled(false); + //Attempt etablishing a connection openDatabaseFile(ficsPath(), false); + } } void MainWindow::copyDatabaseArchive(QString fname, QString destination) @@ -1581,6 +1595,29 @@ void MainWindow::resizeToolBarIcons (int scale) } } +/* Slot to change the pixmap of the Action for FICS connection +To display online or offline states +*/ +void MainWindow::FicsToggleConnected(){ + /* Update pixmap*/ + if (!AppSettings->getValue("/FICS/useTimeseal").toBool()){ + ficsButton->setIcon(QIcon(":/images/fics_online.png")); + } + if (AppSettings->getValue("/FICS/useTimeseal").toBool()){ + ficsButton->setIcon(QIcon(":/images/fics_online_timeseal.png")); + } + /* show the toggle as checked to indicate connection is online */ + ficsButton->setChecked(true); + /* enable the button once again once connection is succesfully established */ + ficsButton->setEnabled(true); +} +void MainWindow::FicsToggleDisconnected(){ + /*Update pixmap */ + ficsButton->setIcon(QIcon(":/images/fics_offline.png")); + /* show the toggle as not checked to indicate connection is offline */ + ficsButton->setChecked(false); +} + void MainWindow::setupActions() { /* File menu */ @@ -1591,11 +1628,16 @@ void MainWindow::setupActions() file->addAction(createAction(tr("&New database..."), SLOT(slotFileNew()), Qt::CTRL + Qt::SHIFT + Qt::Key_N, fileToolBar, ":/images/new.png")); file->addAction(createAction(tr("&Open..."), SLOT(slotFileOpen()), QKeySequence::Open, fileToolBar, ":/images/folder_open.png")); file->addAction(createAction(tr("Open in UTF8..."), SLOT(slotFileOpenUtf8()), QKeySequence())); - file->addAction(createAction(tr("Open FICS"), SLOT(openFICS()), QKeySequence(), fileToolBar, ":/images/fics.png")); - file->addAction(createAction(tr("Open Lichess"), SLOT(openLichess()), QKeySequence(), fileToolBar, ":/images/lichess.png")); - file->addAction(createAction(tr("Open chess.com"), SLOT(openChesscom()), QKeySequence(), fileToolBar, ":/images/chesscom.png")); + ficsButton = createAction(tr("Connect to FICS"), SLOT(openFICS()), QKeySequence(), fileToolBar, ":/images/fics_offline.png"); + ficsButton->setCheckable(true); + file->addAction(ficsButton); + file->addAction(createAction(tr("Open Lichess"), SLOT(openLichess()), QKeySequence(), fileToolBar, ":/images/lichess_fetch.png")); + file->addAction(createAction(tr("Open chess.com"), SLOT(openChesscom()), QKeySequence(), fileToolBar, ":/images/chesscom_fetch.png")); file->addAction(createAction(tr("Web Favorite"), SLOT(openWebFavorite()), QKeySequence(), fileToolBar, ":/images/folder_web.png")); + connect(m_ficsClient, SIGNAL(disconnected()), this, SLOT(FicsToggleDisconnected())); + connect(m_ficsClient, SIGNAL(connected()), this, SLOT(FicsToggleConnected())); + QMenu* menuRecent = file->addMenu(tr("Open recent")); connect(menuRecent, SIGNAL( aboutToShow()), this, SLOT(updateMenuRecent())); file->addSeparator(); diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index d5758a123..5d99eb5e3 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -132,11 +132,16 @@ class MainWindow: public QMainWindow void updateLastGameList(); /* Sets size for icons in the toolbar */ QToolBar * fileToolBar, * editToolBar, * viewToolBar, * gameToolBar, * dbToolBar, * searchToolBar; + /* Sets the Fics button to become available class Wide */ + QAction * ficsButton; public slots: /** Changes window title in response to boardview flipping**/ void updateWindowTitleFlipped(bool, bool); /** resizes icons in the toolbar **/ void resizeToolBarIcons(int scale); + /** Toggle the Pixmap of FICS icon to reflect connect or disconnect status **/ + void FicsToggleConnected(); + void FicsToggleDisconnected(); /** Enter gaming mode */ void slotToggleGameMode(); /** Flip the board view */ diff --git a/src/timeseal/Changelog.md b/src/timeseal/Changelog.md new file mode 100644 index 000000000..2775db258 --- /dev/null +++ b/src/timeseal/Changelog.md @@ -0,0 +1,4 @@ +; -*-fundamental-*- + +### 1.0 - 2016.02.29 + * first release diff --git a/src/timeseal/README.md b/src/timeseal/README.md new file mode 100644 index 000000000..783e1e3b8 --- /dev/null +++ b/src/timeseal/README.md @@ -0,0 +1,26 @@ +## [zseal](https://github.com/fbergo/zseal) +#### open source client for FICS Timeseal v2 for Linux/Unix systems + +:copyright: 2016 Felipe Bergo (Pulga @ FICS), fbergo at gmail_dot_com +https://github.com/fbergo/zseal + +Timeseal is a protocol for network lag reporting and compensation used by the FICS chess server (freechess.org). The version 2 of the protocol provides better delay stats as the server actively pings the client periodically. FICS's FTP repository was taken down a few years ago in one of the server host changes or hard disk crashes (I forgot which) and was never put back on. Since then, there has been nowhere to download a trustable timeseal client for Linux systems. + +The protocol was deduced from Marcello Mamino's openseal (an implementation of timeseal v1) and the java timeseal v2 implementation in Raptor by cday +https://github.com/Raptor-Fics-Interface/Raptor + +`zseal` is released under the [MIT license](mit.md); you can use this software as you please; the authors are not liable for anything the software does to you or your stuff; derived works must retain the copyright notice. + +#### To run from the command line + +`$zseal [host [port]]` + +- If host is omitted, the default "freechess.org" is used +- If host is given but port is omitted, the default 5000 is used + +`$ zseal -v` +or, +`$ zseal --version` +prints the version and exit. + +See: http://www.bergo.eng.br/eboard/doc.php?d=3 for further information diff --git a/src/timeseal/config.h b/src/timeseal/config.h new file mode 100644 index 000000000..091b41126 --- /dev/null +++ b/src/timeseal/config.h @@ -0,0 +1,2 @@ +#define ZSEAL_CONFIG_H 1 +#define LINUX 1 diff --git a/src/timeseal/mit.md b/src/timeseal/mit.md new file mode 100644 index 000000000..99007ef84 --- /dev/null +++ b/src/timeseal/mit.md @@ -0,0 +1,26 @@ +The MIT License (MIT) +===================== + +Copyright © 2016 Felipe Bergo + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the “Software”), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + diff --git a/src/timeseal/zseal.c b/src/timeseal/zseal.c new file mode 100644 index 000000000..7ffce36ba --- /dev/null +++ b/src/timeseal/zseal.c @@ -0,0 +1,291 @@ +/* + zseal - FICS Timeseal 2 client implementation + (C) 2016 Felipe Bergo + repository at https://github.com/fbergo/zseal + + The MIT License (MIT) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include + +#include + +static int zconnect(const char *hostname,int port); +static int zstamp(char *s,int l); +static void zwrite(int fd,const char *buffer,int n); +static void zreceive(int fd, char *buffer, int *rd); +static void zsend(int fd, char *buffer, int *rd); +static void zid(char *dest, int sz); +static void zdie(int report); +static void zchomp(char *s); +static void zclean(char *s); + +const int BSZ = 8192; +const char *TS_KEY = "Timestamp (FICS) v1.0 - programmed by Henrik Gram."; +const char *VERSION = "1.0 20160229"; + +int main(int argc, char **argv) { + char hostname[256], hello[512], id[256]; + int port = 5000; + int fd,n; + fd_set fds; + char *buffer1=NULL, *buffer2 = NULL; + int bpos1=0, bpos2=0; + + if (argc>=2) { + if (strcmp(argv[1],"-v")==0 || strcmp(argv[1],"--version")==0) { + fprintf(stderr,"zseal version %s (C) 2016 Felipe Bergo\n\n",VERSION); + return 0; + } + } + + strcpy(hostname,"freechess.org"); + + zid(id,256); + snprintf(hello,511,"TIMESEAL2|%s|",id); + + buffer1 = (char *) malloc(BSZ); + buffer2 = (char *) malloc(BSZ); + if (buffer1 == NULL || buffer2 == NULL) zdie(0); + memset(buffer1,0,BSZ); + memset(buffer2,0,BSZ); + + if (argc >= 2) { memset(hostname,0,256); strncpy(hostname, argv[1], 255); } + if (argc >= 3) { port = atoi(argv[2]); } + + fd = zconnect(hostname, port); + if (fd<0) zdie(1); + n = zstamp(hello,strlen(hello)); + zwrite(fd,hello,n); + + while(1) { + FD_ZERO(&fds); + FD_SET(0,&fds); + FD_SET(fd,&fds); + select(fd+1,&fds,NULL,NULL,NULL); + + // stdin input + if(FD_ISSET(0,&fds)) { + bpos1 += n = read(0,buffer1+bpos1,BSZ-bpos1); + + if (n==0) { + fprintf(stderr,"EOF from stdin\n"); + exit(0); + } + + if (n==-1) zdie(1); + zsend(fd,buffer1,&bpos1); + + if (bpos1==BSZ) { + fprintf(stderr,"local input too long for our buffer.\n"); + exit(1); + } + } + + // network input + if(FD_ISSET(fd,&fds)) { + bpos2 += n = read(fd,buffer2,BSZ-bpos2); + if (!n) { + fprintf(stderr,"Connection closed by ICS\n"); + exit(0); + } + if(n==-1) zdie(1); + + zreceive(fd,buffer2,&bpos2); + if(bpos2==BSZ) { + fprintf(stderr,"network input too long for our buffer.\n"); + exit(1); + } + } + } + + return 0; +} + +static void zdie(int report) { + if (report) perror(NULL); + exit(1); +} + +static int zconnect(const char *hostname,int port) { + int sockfd, res; + struct addrinfo *addr = NULL, hints; + char s_port[16]; + + memset(s_port,0,16); + snprintf(s_port,15,"%d",port); + + memset(&hints,0,sizeof(hints)); + hints.ai_family = AF_INET; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + hints.ai_flags |= AI_NUMERICSERV; + + res = getaddrinfo(hostname,s_port,&hints,&addr); + if (res!=0) { + fprintf(stderr,"%s\n",gai_strerror(res)); + exit(1); + } + + sockfd = socket(addr->ai_family,addr->ai_socktype, addr->ai_protocol); + if (sockfd < 0) { + freeaddrinfo(addr); + return -1; + } + + res = connect(sockfd, addr->ai_addr, (int) addr->ai_addrlen); + freeaddrinfo(addr); + if (res < 0) return -1; + return sockfd; +} + +static void zwrite(int fd,const char *buffer,int n) { + if (write(fd,buffer,n)==-1) zdie(1); +} + +static int zstamp(char *s,int l) { + int n; + struct timeval tv; + s[l++]=0x18; + gettimeofday(&tv,NULL); + l+=sprintf(&s[l],"%ld",(tv.tv_sec%10000)*1000+tv.tv_usec/1000); + s[l++]=0x19; + for(;l%12;l++) + s[l]=0x31; + for(n=0;n 0) { + memmove(buffer, buffer+i+1, (*rd)); + i = -1; + } + } + } +} + +static void zreceive(int fd, char *buffer, int *rd) { + static const char REQ[4] = { '[', 'G' , ']', 0x00 }; + static const char ACK[2] = { 0x02, 0x39 }; + char reply[32]; + int i,j; + + while(*rd>0) { + // consume and reply to all ping requests + for(i=0;i<=(*rd)-4;i++) { + if (memcmp(buffer+i,REQ,4)==0) { + memcpy(reply,ACK,2); + j=zstamp(reply,2); + zwrite(fd,reply,j); + + (*rd) -= 4; + if ((*rd)-i > 0) { + memmove(buffer+i, buffer+i+4, (*rd)-i); + i--; + } + } + } + // consume line + for(i=0;i<*rd && buffer[i]!=0x0d;i++) ; + if (i<*rd) i++; + zwrite(1,buffer,i); + (*rd) -= i; + if (*rd > 0) memmove(buffer, buffer+i, (*rd)); + } +} + +static void zclean(char *s) { + unsigned int i; + for(i=0;i'z') s[i] = '_'; +} + +static void zchomp(char *s) { + int i; + i = strlen(s) - 1; + while(i>=0 && s[i]<32) s[i--]=0; +} + +static void zid(char *dest, int sz) { + char user[32], uname[128], tmp[512]; + FILE *f; + struct passwd *pw; + + memset(user,0,32); + memset(uname,0,128); + + pw = getpwuid(geteuid()); + if (pw != NULL) strncpy(user,pw->pw_name,31); + + f = popen("uname -a 2>&1","r"); + if (f!=NULL) { + memset(tmp,0,512); + if (fgets(tmp, 511, f)!=NULL) { + zchomp(tmp); + snprintf(uname,127,"%s",tmp); + } + pclose(f); + } + + zclean(user); + zclean(uname); + + memset(dest,0,sz); + snprintf(dest,sz-1,"%s (zseal %s)|%s",user, VERSION, uname); +} diff --git a/timeseal.pro b/timeseal.pro new file mode 100644 index 000000000..73dd85e95 --- /dev/null +++ b/timeseal.pro @@ -0,0 +1,37 @@ +# Main application +DEFINES += QT_DEPRECATED_WARNINGS +CONFIG += console +TEMPLATE = app + +unix|!macx { + isEmpty(PREFIX) { + bsd { + PREFIX = /usr/local + } + PREFIX = /usr + } + BINDIR = $$PREFIX/bin + + INSTALLS += binfiles + + binfiles.files = release/timeseal + binfiles.path = $$BINDIR +} + +HEADERS += src/timeseal/config.h +SOURCES += src/timeseal/zseal.c +INCLUDEPATH += src/timeseal + +CONFIG(debug, debug|release) { + DESTDIR = "debug" + OBJECTS_DIR = "obj_dbg" + DEFINES += _DEBUG +} + +CONFIG(release, debug|release) { + DESTDIR = "release" + OBJECTS_DIR = "obj_rel" + DEFINES += QT_NO_DEBUG_OUTPUT NDEBUG +} + +TARGET = timeseal