/
DESIGN
65 lines (51 loc) · 1.68 KB
/
DESIGN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
* Bots/Scheduling.
* Bot persistence.
* Monitoring/logging/admin of bots.
* Proper server logging to files, etc.?
API
===
GenerateTweets(genParams) : []string
GenerateWithAuthorization(genParams, authParams) : []string
CreateNewBot(name, authParams, genparams, schedule) : "Next time is..."
ListBots() : []string
CancelBot(name) : "<name> cancelled."
DeleteBot(name) : "<name> gone!"
ListBotSchedule(name) : "Next time is..."
SetBotSchedule(name, schedule) : "Next time is..."
StartBot(name) : "Next time is..."
ProvideCredentials(name, authparams) : "Name -> Token"
Ping() : "ok"
Critical
--------
* TESTS
** Integration test for the actual command-line client: test flags, etc.
** Mocks for server-calling code, DB?
* REFACTORING
** check godoc output, see if module visibility is alright.
** clean documentation comments, debugging output.
** "Effective Go" -- look to naming, visibility
** package comments!
* PROFILING
** needless call-by-value causing copying? Where are we slow?
* FEATURE QUALITY
** Ensure no direct subsets?
Features
--------
* Webapp frontend.
* Persistent storage of Generators/bots/tweets? Custom binary format?
----
* "Sweeps," a set of filters that you can apply to the text,
** Capitalization.
*** ALLCAPS
*** all lowercase, better known as the "instagram user"
*** Washington Post Style, Where Every Word is Capitalized
*** Force a proper sentence structure.
** Hashtags
*** coffee dadder#
*** Random #Hashtagging of a word.
*** Chuck Grassleying #CombineWordsIntoOneTag (note that you'd probably want to
remove a word from whatever you contract together to make it as
weird-as-hell as possible).
----
* "Real" Database backend, like Postgres?
* RT/MT stripping?