Skip to content

Commit 2b08edb

Browse files
authored
Merge pull request #415 from davidhozic/develop
Develop
2 parents af41148 + 1059ce2 commit 2b08edb

File tree

18 files changed

+76
-76
lines changed

18 files changed

+76
-76
lines changed

docs/source/changelog.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ Releases
3434

3535
v2.10
3636
====================
37+
- GUI:
38+
39+
- GUI can now be started with ``python -m daf_gui``
40+
- Deprecation notices are now a button.
41+
- Certain fields are now masked with '*' when not editing the object.
42+
- Old data that is being updated will now be updated by index
43+
- View properties of trackable objects. This can be used to, eg. view the channels AutoCHANNEL found.
44+
- 'Load default' button when editing :class:`discord.Intents` object.
45+
- A warning is shown besides the method execution frame to let users know, the data is not preserved.
46+
- Fixed accounts not being deleted when using delete / backspace keys in live view.
3747

3848
- Accounts:
3949

@@ -69,16 +79,6 @@ v2.10
6979
- Selenium can now be used though remote, however it is not recommended.
7080
- Querying for new guilds will not repeat once no more guilds are found.
7181

72-
- GUI:
73-
74-
- deprecation notices are now a button.
75-
- Certain fields are now masked with '*' when not editing the object.
76-
- Old data that is being updated will now be updated by index
77-
- View properties of trackable objects. This can be used to, eg. view the channels AutoCHANNEL found.
78-
- 'Load default' button when editing :class:`discord.Intents` object.
79-
- A warning is shown besides the method execution frame to let users know, the data is not preserved.
80-
- Fixed accounts not being deleted when using delete / backspace keys in live view.
81-
8282

8383
v2.9.7
8484
=================

docs/source/guide/GUI/quickstart.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,20 @@ This page contains information to quickly getting started with the GUI.
55

66
The first thing you need is the library installed, see :ref:`Installation`.
77

8-
After successful installation, DAF can be run in graphical mode by executing the command ``daf-gui`` command inside the terminal.
8+
After successful installation, DAF can be run in graphical mode by executing the command ``daf-gui`` command inside the terminal
99

1010
.. code-block:: bash
1111
1212
$ daf-gui
1313
14+
or by using ``python -m daf_gui`` command.
15+
16+
17+
.. code-block:: bash
18+
19+
$ python -m daf_gui
20+
21+
1422
On Windows it can also be started though the Run (Win + R) menu.
1523

1624
.. image:: ./images/run-windows-daf-gui.png

docs/thesis/IzjavaOAvtorstvu.pdf

100 KB
Binary file not shown.
14.6 KB
Binary file not shown.

docs/thesis/daf-thesis.pdf

158 KB
Binary file not shown.

docs/thesis/images/daf-high-level-log.svg

Lines changed: 1 addition & 1 deletion
Loading
1.55 MB
Binary file not shown.

docs/thesis/sl/abstract.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414

1515
Nezamenljivi žetoni (angl. *Non fungible tokens*) so edinstvena digitalna sredstva, ki živijo na verigi blokov brez možnosti replikacije.
16-
Obstaj več pristopov za njihovo oglaševanje, kjer je eden izmed teh oglaševanje po socialnem omrežju Discord s pristopom agresivnega oglaševanja.
16+
Obstaja več pristopov za njihovo oglaševanje, kjer je eden izmed teh oglaševanje po socialnem omrežju Discord s pristopom agresivnega oglaševanja.
1717
Diplomsko delo se fokusira na proces oglaševanja in se navezuje na projekt Ogrodje za oglaševanje po Discordu (angl. Discord Advertisement Framework),
1818
ki je implementirano v programskem jeziku Python.
1919

docs/thesis/sl/appendix.rst

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -58,32 +58,6 @@ Pošiljanje s fiksno periodo dveh ur in avtomatično odkrivanje pridruženih ceh
5858
:caption: Avtomatsko odkrivanje cehov in kanalov - |SCHEMA_EXAMPLE|
5959

6060

61-
62-
Sledenje cehovskih (pridružnih) povezav
63-
----------------------------------------------
64-
Sledenje trem cehovskim povezavam.
65-
66-
.. literalinclude:: ./DEP/Examples/example-invites-tracking.py
67-
:caption: Sledenje cehovskih povezav - |PY_EXAMPLE|
68-
69-
.. literalinclude:: ./DEP/Examples/example-invites-tracking.json
70-
:caption: Sledenje cehovskih povezav - |SCHEMA_EXAMPLE|
71-
72-
73-
74-
Pridružitev novim cehom
75-
----------------------------------------
76-
Pridruževanje največ 15 novim cehom, na podlagi izraza "NFT", ker imajo cehi med 100 in 1000 uporabnikov.
77-
78-
79-
.. literalinclude:: ./DEP/Examples/example-new-guild-join.py
80-
:caption: Pridružitev novim cehom - |PY_EXAMPLE|
81-
82-
.. literalinclude:: ./DEP/Examples/example-new-guild-join.json
83-
:caption: Pridružitev novim cehom - |SCHEMA_EXAMPLE|
84-
85-
86-
8761
Oddaljen dostop
8862
----------------------------------------
8963
HTTP strežnik, in GUI shema za povezovanje na ta strežnik.

docs/thesis/sl/daf/design_development/core.rst

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ da se to datoteko generira iz grafičnega vmesnika (:ref:`Zasnova in razvoj graf
2424

2525
AsyncIO
2626
===============
27-
Jedro ogrodja je zasnovano za konkurenčno (angl. *concurrent*) delovanje, kar pomeni da se lahko na videz več opravil izvaja na enkrat, v
28-
resnici pa se zelo hitro preklaplja med njimi. To je omogočeno s knjižnico :mod:`asyncio`.
29-
AsyncIO omogoča ustvarjanje ``async`` funkcij, ki vrnejo korutine. Te korutine lahko potem zaženemo v opravilih,
27+
Jedro ogrodja je zasnovano za sočasno (angl. *concurrent*) večopravilnost, kar pomeni da se lahko na videz več opravil izvaja na enkrat, v
28+
resnici pa se med njimi zelo hitro preklaplja. To je omogočeno s knjižnico :mod:`asyncio`.
29+
AsyncIO omogoča ustvarjanje ``async`` funkcij, ki vrnejo korutine (angl. coroutine). Te korutine lahko potem zaženemo v opravilih,
3030
med katerimi bo program preklopil vsakič, ko v trenutnem opravilu z ``await`` besedo na primer čakamo:
3131

3232
- na konec neke asinhrone komunikacije (angl. *Async I/O*)
@@ -38,6 +38,7 @@ med katerimi bo program preklopil vsakič, ko v trenutnem opravilu z ``await`` b
3838
dela kode oz. skupne surovine. https://docs.python.org/3/library/asyncio-sync.html.
3939
4040
41+
4142
.. raw:: latex
4243

4344
\newpage
@@ -83,7 +84,7 @@ Ogrodje samo po sebi deluje tako, da ima vse objekte (račune, cehe, sporočila,
8384
ob taki definiciji neproblematično, problem pa je nastopil, ko je bilo dodano dinamično dodajanje in brisanje objektov, kar
8485
dejansko uporabnikom omogoča, da ogrodje dinamično uporabljajo in v tem primeru je bilo potrebno dodati neke vrste permanentno shrambo.
8586
Razmišljalo se je o več alternativah, ena izmed njih je bila da bi se vse objekte shranjevalo v neko bazo podatkov, ki bi omogočala
86-
mapiranje podatkov v bazi, kar bi z vidika robustnosti bila zelo dobra izbira, a to bi zahtevalo veliko prenovo
87+
preslikavo bazičnih podatkov v objekte, kar bi z vidika robustnosti bila zelo dobra izbira, a to bi zahtevalo veliko prenovo
8788
vseh sektorjev, zato se je na koncu izbrala preprosta opcija shranjevanja objektov, ki preko :mod:`pickle` modula shrani vse račune
8889
ob vsakem normalnem izklopu ogrodja, ali pa v vsakem primeru na dve minuti periodično. V prihodnosti so
8990
še vedno načrti za izboljšanje tega mehanizma in ne izključuje se uporaba prej omenjene podatkovne baze.
@@ -162,7 +163,7 @@ v primeru beleženja sporočil (vsaj v primeru JSON datotek), kjer je vse razdel
162163

163164
Sporočilni sektor
164165
-----------------
165-
Sporočilni sektor je zadolžen za pošiljanje dejanskih sporočil v posamezne kanale na Discordu.
166+
Sporočilni sektor je zadolžen za pošiljanje dejanskih sporočil v posamezne kanale.
166167
V tem sektorju so na voljo trije glavni razredi za ustvarjanje različnih vrst sporočil:
167168

168169
1. |TextMESSAGE| - pošiljanje tekstovnih sporočil v cehovske kanale
@@ -185,9 +186,9 @@ To je še posebno pomembno v primeru, da imamo definiranih veliko sporočil v en
185186
poslalo točno ob določenem času. Ker se čas prišteva od prejšnjega predvidenega časa pošiljanja, to pomeni, da bo v primeru
186187
zamude sporočila razmak med tem in naslednjim sporočilom manjši točno za to časovno napako (če privzamemo da ne bo ponovne zakasnitve).
187188

188-
Pred tem algoritmom, je za določanje časa pošiljanja bil v rabi preprost časovnik, ki se je ponastavil po vsakem pošiljanju, a se je zaradi Discordove
189-
omejitve API zahtevkov in tudi drugih Discord API zakasnitev, čas pošiljanja vedno pomikal malo naprej, kar je pomenilo, da če je uporabnik
190-
ogrodje konfiguriral da se neko sporočilo pošlje vsak dan in definiral čas začetka naslednje jutro ob 10ih (torej pošiljanje vsak dan ob tej uri),
189+
Pred tem algoritmom je bil za določanje časa pošiljanja v rabi preprost časovnik, ki se je ponastavil po vsakem pošiljanju, a se je zaradi Discordove
190+
omejitve API zahtevkov in tudi drugih Discord API zakasnitev čas pošiljanja vedno pomikal malo naprej, kar je pomenilo, da če je uporabnik
191+
ogrodje konfiguriral, da se neko sporočilo pošlje vsak dan in definiral čas začetka naslednje jutro ob 10ih (torej pošiljanje vsak dan ob tej uri),
191192
potem je po (sicer veliko) pošiljanjih namesto ob 10ih uporabnik opazil, da se sporočilo pošlje ob 10.01, 10.02, itd.
192193
Primer računanja časa in odprave časovne napake je prikazan na spodnji sliki.
193194

@@ -262,7 +263,7 @@ datoteko.
262263

263264
CSV beleženje
264265
~~~~~~~~~~~~~~~~~~
265-
CSV beleženje deluje na enak način kot JSON beleženje. Edina razlika je v formatu, kjer je format tu CSV.
266+
CSV beleženje deluje na enak način kot JSON beleženje. Edina razlika je v formatu, kjer je ta v tem primeru CSV.
266267
Lokacija datotek je enaka kot pri JSON beleženje. Za shranjevanje je uporabljen vgrajen Python modul :mod:`csv`.
267268

268269
Za sam pregled poslanih sporočil to ni najbolj primeren format, saj se vse shrani v eni datoteki, kjer za razliko od JSON
@@ -276,18 +277,19 @@ formata, tu ni več-slojnih strukture.
276277

277278
SQL beleženje
278279
~~~~~~~~~~~~~~~~~~
279-
SQL beleženje pa deluje precej drugače, kot delujeta JSON beleženje in CSV beleženje, saj se podatki shranjujejo
280+
SQL beleženje deluje precej drugače, kot delujeta JSON beleženje in CSV beleženje, saj se podatki shranjujejo
280281
v podatkovno bazo, ki je v primeru uporabe SQLite dialekta lahko tudi datoteka.
281282

282283
Beleženje je omogočeno v štirih SQL dialektih:
283284

284285
1. SQLite
285-
2. Microsoft SQL Server
286+
2. Microsoft SQL Server (T-SQL)
286287
3. PostgreSQL
287288
4. MySQL / MariaDB
288289

289290
Za čim bolj univerzalno implementacijo na vseh dialektih, je bila pri razvoju uporabljena knjižnica :mod:`SQLAlchemy`.
290-
Celoten sistem SQL beleženja je implementiran s pomočjo ORM, kar med drugim omogoča tudi
291+
292+
Celoten sistem SQL beleženja je implementiran s pomočjo ORM, kar med drugim omogoča,
291293
da SQL tabele predstavimo z Python razredi, posamezne vnose v bazo podatkov oz. vrstice pa predstavimo z instancami
292294
teh razredov. Z ORM lahko skoraj v celoti skrijemo SQL in delamo neposredno z Python objekti, ki so lahko tudi gnezdene
293295
strukture, npr. vnosa dveh ločenih tabel lahko predstavimo z dvema ločenima instancama, kjer je ena instanca
@@ -344,5 +346,5 @@ PyCord je odprtokodno ogrodje, ki je nastalo iz kode starejšega `discord.py <ht
344346
Ogrodje PyCord skoraj popolnoma zakrije Discord API z raznimi objekti, ki jih ogrodje interno uporablja.
345347

346348
Če bi si ogledali izvorno kodo (angl. *source code*) ogrodja, bi opazili da je poleg ``daf`` paketa zraven tudi paket z imenom ``_discord``.
347-
To ni nič drugega kot PyCord ogrodje, le da je modificirano za možnost rabe na osebnih uporabniških računih.
349+
To ni nič drugega kot PyCord ogrodje, le da je modificirano za možnost rabe na uporabniških računih (poleg avtomatiziranih robotskih računov).
348350

0 commit comments

Comments
 (0)