This commit is contained in:
Andreas Neue 2016-01-10 18:45:21 +01:00
commit 51b7e05596
11 changed files with 1214 additions and 0 deletions

20
Dockerfile Normal file
View File

@ -0,0 +1,20 @@
FROM ubuntu:15.10
MAINTAINER Andreas Neue <an@dnix.de>
RUN apt-get -y --force-yes update
RUN apt-get -y --force-yes upgrade
RUN apt-get install -y ca-certificates
RUN apt-get install -y fortune vim
RUN apt-get clean
RUN mkdir /flokatirc
COPY flokatirc /flokatirc/flokatirc
COPY newsfeeds.conf /flokatirc/newsfeeds.conf
COPY fortunes /flokatirc/fortunes
ENV PATH $PATH:/flokatirc
WORKDIR /flokatirc
CMD [ "/flokatirc/flokatirc", "-server=irc.dnix.de:6667", "-name=Flokati", "-chan=#northbrigade", "-nsname=N", "-nspass=t0ps3cr37" ]

19
LICENSE Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2015,2016 Andreas Neue
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.

11
README.md Normal file
View File

@ -0,0 +1,11 @@
## flokatirc
*an incredibly friendly, silver-tongued, and elegantly proportioned IRC community bot*
#### LICENSE
See `LICENSE` file.
#### QUICK INSTALL
`# go build flokatirc`

137
main.go Normal file
View File

@ -0,0 +1,137 @@
// vim:ts=4:sts=4:sw=4:noet:tw=72
//
// flokatirc
//
// Copyright (c) 2015 Andreas Neue <an@dnix.de>
package main
import (
"flag"
"log"
"strings"
"time"
"github.com/nickvanw/ircx"
"github.com/sorcix/irc"
modfortune "flokatirc/modules/fortune"
modnews "flokatirc/modules/news"
modsaytime "flokatirc/modules/saytime"
modsc "flokatirc/modules/sc"
modstoll "flokatirc/modules/stoll"
)
var (
name = flag.String("name", "Flokati", "Nickname to use")
server = flag.String("server", "chat.freenode.org:6667", "Host:Port to connect to")
channels = flag.String("chan", "#test", "Channels to join")
nsname = flag.String("nsname", "NickServ", "NickServ name")
nspass = flag.String("nspass", "", "NickServ password")
modules = flag.String("modules", "news,starcitizen,fortune,saytime", "Module list, comma separated")
)
func init() {
flag.Parse()
}
func main() {
sayCh := make(chan string, 1024)
//bot := ircx.Classic(*server, *name)
cfg := ircx.Config{User: *name, MaxRetries: 10}
bot := ircx.New(*server, *name, cfg)
log.Println("Logging in")
if err := bot.Connect(); err != nil {
log.Panicln("Unable to dial IRC Server:", err)
}
//mods := strings.Split(*modules, ",")
//TODO: implement more robust list parsing
//XXX: this sucks
if strings.Contains(*modules, "news") {
go modnews.Init(sayCh, "newsfeeds.conf")
}
if strings.Contains(*modules, "starcitizen") {
go modsc.Init(sayCh)
}
if strings.Contains(*modules, "fortune") {
go modfortune.Init(sayCh)
}
if strings.Contains(*modules, "stoll") {
go modstoll.Init(sayCh)
}
if strings.Contains(*modules, "saytime") {
go modsaytime.Init(sayCh)
}
go func() {
for {
var targets string
line := strings.Split(<-sayCh, "\n")
if len(line) < 2 {
continue
}
if line[0] != "*" {
targets = line[0]
} else {
targets = *channels
}
for _, tar := range strings.Split(targets, ",") {
bot.Sender.Send(&irc.Message{
Command: irc.PRIVMSG,
Params: []string{tar},
Trailing: line[1],
})
time.Sleep(1 * time.Second)
}
}
}()
RegisterHandlers(bot)
bot.HandleLoop()
log.Println("Exiting")
}
func RegisterHandlers(bot *ircx.Bot) {
log.Println("Registering handlers")
bot.HandleFunc(irc.RPL_WELCOME, RegisterConnect)
bot.HandleFunc(irc.PING, PingHandler)
bot.HandleFunc(irc.PRIVMSG, PrivmsgHandler)
}
func RegisterConnect(s ircx.Sender, m *irc.Message) {
if *nspass != "" {
log.Printf("Authenticating with NickServ: %v, %v", *name, *nspass)
s.Send(&irc.Message{
Command: irc.PRIVMSG,
Params: []string{*nsname},
Trailing: "IDENTIFY " + *name + " " + *nspass,
})
}
log.Printf("Joining channels: %v", *channels)
for _, ch := range strings.Split(*channels, ",") {
s.Send(&irc.Message{
Command: irc.JOIN,
Params: []string{ch},
})
}
}
func PingHandler(s ircx.Sender, m *irc.Message) {
log.Println("PingPong")
s.Send(&irc.Message{
Command: irc.PONG,
Params: m.Params,
Trailing: m.Trailing,
})
}
func PrivmsgHandler(s ircx.Sender, m *irc.Message) {
//TODO: implement message handler table
modsc.HandleMessage(m)
modfortune.HandleMessage(m)
modstoll.HandleMessage(m)
modsaytime.HandleMessage(m)
}

View File

@ -0,0 +1,53 @@
// vim:ts=4:sts=4:sw=4:noet:tw=72
package fortune
import (
"bytes"
"fmt"
"log"
"os/exec"
"strings"
"github.com/sorcix/irc"
)
var (
sayCh chan string
)
func Init(ch chan string) {
log.Println("Initializing fortune module")
sayCh = ch
}
func HandleMessage(m *irc.Message) {
tok := strings.Split(m.Trailing, " ")
if len(tok) < 1 {
return
}
switch tok[0] {
case "!fortune":
fortune()
default:
}
}
func fortune() {
cmd := exec.Command("/usr/games/fortune", "/flokatirc/fortunes/")
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
println(err)
return
}
s := out.String()
s = strings.Replace(s, "\r", "", -1)
s = strings.Replace(s, "\t", " ", -1)
for _, l := range strings.Split(s, "\n") {
if l != "" {
sayCh <- fmt.Sprintf("*\n%s", l)
}
}
}

76
modules/news/news.go Normal file
View File

@ -0,0 +1,76 @@
// vim:ts=4:sts=4:sw=4:noet:tw=72
//
// This code is mostly derived from the example code by Jim Teeuwen
// and is subject to the CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
// license.
package news
import (
"bufio"
"errors"
"fmt"
"io"
"log"
"os"
"time"
rss "github.com/jteeuwen/go-pkg-rss"
"github.com/jteeuwen/go-pkg-xmlx"
)
var sayCh chan string
var hideOutput = true
func Init(ch chan string, path string) {
log.Printf("Initializing news module")
sayCh = ch
file, err := os.Open(path)
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
<-time.After(60 * time.Second)
for scanner.Scan() {
go PollFeed(scanner.Text(), 5, charsetReader)
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
time.Sleep(60 * time.Second)
hideOutput = false
}
func PollFeed(uri string, timeout int, cr xmlx.CharsetFunc) {
feed := rss.New(timeout, true, chanHandler, itemHandler)
for {
log.Printf("Polling feed: %s", uri)
if err := feed.Fetch(uri, cr); err != nil {
log.Printf("[e] %s: %s", "*", uri, err)
//sayCh <- fmt.Sprintf("%s\n[e] %s: %s", "*", uri, err)
return
}
<-time.After(time.Duration(feed.SecondsTillUpdate() * 1e9))
}
}
func chanHandler(feed *rss.Feed, newchannels []*rss.Channel) {
//sayCh <- fmt.Sprintf("%s\n%d new channel(s) in %s", "*", len(newchannels), feed.Url)
}
func itemHandler(feed *rss.Feed, ch *rss.Channel, newitems []*rss.Item) {
if hideOutput {
return
}
for _, ni := range newitems {
sayCh <- fmt.Sprintf("%s\n*** [NEWS] %v - %v", "*", ni.Title, ni.Links[0].Href)
}
}
func charsetReader(charset string, r io.Reader) (io.Reader, error) {
if charset == "ISO-8859-1" || charset == "iso-8859-1" {
return r, nil
}
return nil, errors.New("Unsupported character set encoding: " + charset)
}

View File

@ -0,0 +1,84 @@
// vi:ts=4:sts=4:sw=4:noet:tw=72
package sc
import (
"fmt"
"log"
"strings"
"time"
"github.com/sorcix/irc"
)
var sayCh chan string
func Init(ch chan string) {
log.Println("Initializing saytime module")
sayCh = ch
}
func HandleMessage(m *irc.Message) {
tok := strings.Split(m.Trailing, " ")
if len(tok) < 1 {
return
}
switch tok[0] {
case "!time":
show()
//case "!q":
// show()
default:
}
}
func show() {
t := time.Now()
h := t.Hour()
tzcorrect := 1
h = h + tzcorrect
m := t.Minute()
s := "Es ist "
switch {
case m < 3:
s += fmt.Sprintf("%s Uhr\n", sayhour(h))
case m < 8:
s += fmt.Sprintf("fünf nach %s\n", sayhour(h))
case m < 13:
s += fmt.Sprintf("zehn nach %s\n", sayhour(h))
case m < 18:
s += fmt.Sprintf("viertel nach %s\n", sayhour(h))
case m < 23:
s += fmt.Sprintf("zwanzig nach %s\n", sayhour(h))
case m < 28:
s += fmt.Sprintf("fünf vor halb %s\n", sayhour(h+1))
case m < 33:
s += fmt.Sprintf("halb %s\n", sayhour(h+1))
case m < 38:
s += fmt.Sprintf("fünf nach halb %s\n", sayhour(h+1))
case m < 43:
s += fmt.Sprintf("zehn nach halb %s\n", sayhour(h+1))
case m < 48:
s += fmt.Sprintf("viertel vor %s\n", sayhour(h+1))
case m < 53:
s += fmt.Sprintf("zehn vor %s\n", sayhour(h+1))
case m < 58:
s += fmt.Sprintf("fünf vor %s\n", sayhour(h+1))
default:
s += fmt.Sprintf("%s Uhr\n", sayhour(h+1))
}
sayCh <- fmt.Sprintf("*\n%s", s)
}
func sayhour(h int) string {
words := [...]string{"zwölf", "eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn", "elf"}
for {
if h > 11 {
h = h - 12
} else {
break
}
}
return words[h]
}

223
modules/sc/sc.go Normal file
View File

@ -0,0 +1,223 @@
// vim:ts=4:sts=4:sw=4:noet:tw=72
package sc
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
"regexp"
"strconv"
"strings"
"time"
"flokatirc/util"
"github.com/sorcix/irc"
)
const (
API_URL = "https://robertsspaceindustries.com/api"
API_METHOD = "/stats/getCrowdfundStats"
QUERY_CIT_URL = "https://robertsspaceindustries.com/citizens/"
QUERY_ORG_URL = "https://robertsspaceindustries.com/orgs/"
RE_CIT_NAME = `<div class="info">\s*<p class="entry">\s*<strong class="value">(.*)</strong>\s*</p>\s*<p class="entry">`
RE_CIT_RECORD = `<p class="entry citizen-record">\s*<span class="label">UEE Citizen Record</span>\s*<strong class="value">#(.*)</strong>`
RE_CIT_HANDLE = `<p class="entry">\s*<span class="label">Handle name</span>\s*<strong class="value">(.*)</strong>\s*</p>`
RE_CIT_ORG = `<a href=.*orgs.*class=.*style=.*background-position.*px center.*>(.*)</a>`
RE_CIT_SID = `Spectrum Identification \(SID\)</span>\s*<strong class="value data.*">([A-Z0-9]*)</strong>`
RE_CIT_RANK = `Organization rank</span>\s*<strong class="value data.*">(.*)</strong>`
RE_ORG_NAME = `<h1>(.*) ?/ ?<span class="symbol">`
RE_ORG_COUNT = `<span class="count">(.*) member`
RE_ORG_MODEL = `<li class="model">(.*)</li>`
RE_ORG_FOCUS = `<ul class="focus clearfix">\s*<li class="primary tooltip-wrap">\s*<img src=".*" alt=".*" />\s*<div class="rsi-tooltip">\s*<div class="content">(.*)</div>\s*<span class="bottom"></span>\s*</div>\s*</li>\s*<li class="secondary tooltip-wrap">\s*<img src=".*" alt=".*" />\s*<div class="rsi-tooltip">\s*<div class="content">(.*)</div>\s*<span class="bottom"></span>\s*</div>\s*</li>\s*</ul>`
RE_ORG_COMM = `<li class="commitment">(.*)</li>`
FANS_INT = 1000
FLEET_INT = 1000
FUNDS_INT = 10000
)
var (
sayCh chan string
fans = 0
fleet = 0
funds = 0
)
func Init(ch chan string) {
log.Println("Initializing sc module")
sayCh = ch
go scrapeLoop()
}
func HandleMessage(m *irc.Message) {
tok := strings.Split(m.Trailing, " ")
if len(tok) < 1 {
return
}
switch tok[0] {
case "!scstats":
showScStats()
case "!cit":
if len(tok) > 1 {
showCitizen(tok[1])
}
case "!org":
if len(tok) > 1 {
showOrganization(tok[1])
}
default:
}
}
func toInt(v interface{}) int {
switch v.(type) {
case int:
return v.(int)
case float64:
return int(v.(float64))
case string:
ret, _ := strconv.Atoi(v.(string))
return ret
default:
return 0
}
}
func scrapeLoop() {
for {
scraper()
time.Sleep(1 * time.Minute)
}
}
func scraper() {
var data interface{}
log.Println("Scraping SC stats")
resp, err := http.PostForm(API_URL+API_METHOD,
url.Values{"fans": {"true"}, "fleet": {"true"}, "funds": {"true"}})
if err != nil {
log.Printf("Error: %v", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Printf("Error: %v", err)
return
}
err = json.Unmarshal(body, &data)
if err != nil {
log.Printf("Error: %v", err)
return
}
stats := data.(map[string]interface{})["data"].(map[string]interface{})
//fmt.Println(stats["fans"].(type))
curFans := toInt(stats["fans"])
curFleet := toInt(stats["fleet"])
curFunds := toInt(stats["funds"]) / 100
nextFans := ((fans / FANS_INT) * FANS_INT) + FANS_INT
nextFleet := ((fleet / FLEET_INT) * FLEET_INT) + FLEET_INT
nextFunds := ((funds / FUNDS_INT) * FUNDS_INT) + FUNDS_INT
if curFans >= nextFans {
sayCh <- "*\n*** [SC] Star Citizens: " + util.NumberToString(curFans, '.')
}
if curFleet >= nextFleet {
sayCh <- "*\n*** [SC] The UEE Fleet: " + util.NumberToString(curFleet, '.')
}
if curFunds >= nextFunds {
sayCh <- "*\n*** [SC] Funds raised: " + util.NumberToString(curFunds, '.')
}
fans = curFans
fleet = curFleet
funds = curFunds
}
func showScStats() {
sayCh <- "*\n*** SC User and Funding Stats ###"
sayCh <- fmt.Sprintf("*\nFans: %s", util.NumberToString(fans, '.'))
sayCh <- fmt.Sprintf("*\nFleet: %s", util.NumberToString(fleet, '.'))
sayCh <- fmt.Sprintf("*\nFunds: $ %s", util.NumberToString(funds, '.'))
}
func showCitizen(handle string) {
resp, err := http.Get(QUERY_CIT_URL + handle)
if err != nil {
log.Printf("Error: %v", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Printf("Error: %v", err)
return
}
reName := regexp.MustCompile(RE_CIT_NAME)
reRecord := regexp.MustCompile(RE_CIT_RECORD)
reHandle := regexp.MustCompile(RE_CIT_HANDLE)
reOrg := regexp.MustCompile(RE_CIT_ORG)
reSid := regexp.MustCompile(RE_CIT_SID)
reRank := regexp.MustCompile(RE_CIT_RANK)
name := reName.FindStringSubmatch(string(body))
record := reRecord.FindStringSubmatch(string(body))
handle_ := reHandle.FindStringSubmatch(string(body))
org := reOrg.FindStringSubmatch(string(body))
sid := reSid.FindStringSubmatch(string(body))
rank := reRank.FindStringSubmatch(string(body))
if len(name) > 1 {
sayCh <- "*\n*** Citizen Info ***"
sayCh <- "*\n" + "Name: " + string(name[1]) + " [" + string(handle_[1]) + "]"
sayCh <- "*\n" + "URL: " + QUERY_CIT_URL + string(handle_[1])
sayCh <- "*\n" + "UEE #: " + string(record[1])
if len(org) > 1 {
sayCh <- "*\n" + "Organization: " + string(org[1]) + " [" + string(sid[1]) + "]"
sayCh <- "*\n" + "Rank: " + string(rank[1])
} else {
sayCh <- "*\n" + "Organization: <none>"
}
} else {
sayCh <- "*\n" + "*** No Such Citizen ***"
}
}
func showOrganization(handle string) {
resp, err := http.Get(QUERY_ORG_URL + handle)
if err != nil {
log.Printf("Error: %v", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Printf("Error: %v", err)
return
}
reName := regexp.MustCompile(RE_ORG_NAME)
reCount := regexp.MustCompile(RE_ORG_COUNT)
reModel := regexp.MustCompile(RE_ORG_MODEL)
reFocus := regexp.MustCompile(RE_ORG_FOCUS)
reComm := regexp.MustCompile(RE_ORG_COMM)
name := reName.FindStringSubmatch(string(body))
count := reCount.FindStringSubmatch(string(body))
model := reModel.FindStringSubmatch(string(body))
focus := reFocus.FindStringSubmatch(string(body))
comm := reComm.FindStringSubmatch(string(body))
if len(name) > 1 {
sayCh <- "*\n*** Organization Info ***"
sayCh <- "*\nName: " + string(name[1]) + " [" + strings.ToUpper(handle) + "]"
sayCh <- "*\nURL: " + QUERY_ORG_URL + strings.ToUpper(handle)
sayCh <- "*\nMembers: " + string(count[1])
sayCh <- "*\nModel: " + string(model[1])
sayCh <- "*\nCommitment: " + string(comm[1])
sayCh <- "*\nFocus: " + string(focus[1]) + ", " + string(focus[2])
} else {
sayCh <- "*\n*** No Such Organization ***"
}
}

548
modules/stoll/stoll.go Normal file
View File

@ -0,0 +1,548 @@
// vi:ts=4:sts=4:sw=4:noet:tw=72
package stoll
import (
"fmt"
"math/rand"
"strings"
"time"
"github.com/sorcix/irc"
)
var quotes = [][]string{
{
"Woher die Reptos kommen ist mir auch bekannt.",
"Klaus Böhme, das ist derjenige, der hocheffiziente BHKWs (...) baut, mittels Braunsgas, also kalte Fusion.",
"Gerichte und Polizei sind für mich Fremdwörter.",
"Ich hab den Schutz der Dritten Macht!",
"Ich genieße den Templerschutz und den Schutz der National Security Eygenzi.",
"Fußball... Gotteswillen - Opium fürs Volk saggich nur. Brot und Spiele. Iss was für Bekloppte.",
"Was ist denn das für Musik?",
"Wer GEZ zahlt ist selber dämlich.",
"Helmut kommt - vom Klo, aber er kommt.",
"Geht mal ins Internet, Google-Suchmaschine, und gebt den Begriff Skalarwellen ein.",
"In sekundenschnelle zu anderen Fixsternen.",
"Gedanken sind infometrische Felder.",
"Was machst du denn da wieder fürn Ödeldödel?!", "Negativmagnetismus, was ist das denn wieder, Helmut?",
"Die Zahl 12 - auch ne kosmische Zahl.",
"Primzahlen bis 1024 werden in der Computertechnik benutzt.",
"Ich selber bin ein stinkenfauler Mensch was körperliche Arbeit angeht.",
"Jetzt kommen wir zur Wetterbeeinflussung und -kriegsführung durch Skalarwellen.",
"Quarz als Skalarwelleninterferometer.",
"Bei mir in der Energiegruppe, die Leute, die nicht in der Lage sind ein einfaches Integral zu lösen, die schmeiße ich gnadenlos schon raus.",
"Wisst Ihr eigentlich, wie die Dekadenz programmiert ist?",
"Weisste was die Primzahlen bedeuten? Einen Torus - raum-zeitlich gesehen.",
"Physik 2/3 schrott.",
"Wurzelrechnung... lächerlich.",
"Ich bin auch ein Anhänger der Kataklysmen-Theorie.",
"Darwin, Jude... klar. Da wurde die Biologie versaut Einstein, Jude... die Physik wurde versaut, so kann ich das ganze Gebäude durchgehen.",
"Wird sind die fünfte Wurzelrasse, die arische.",
"Die erste Wurzelrasse war die Polarrasse.",
"Was richtet Luft an? Tornados!",
"Die Velociraptoren (…) hatte eine eigene Sprache, aus denen entstammen vermutlich die Reptos, iss so.",
"Mann muss immer den Ursprung erkennen - den Algorithmus, meine Damen, meine Herren.",
"Es hat überhaupt keinen Sinn - der Tod überrascht Jeden!",
"Ich kann mich in sekundenschnelle mit anderen Sternensystemen, Galaxien informieren.",
"Heute werden wir über HAARP, sprich Wetterkriegsführung sprechen.",
"Von wegen das Märchen über die desolate russische Armee - da kann ich nur lachen!",
"Es gibt keine feste Materie - das ist ein Trugschluss.",
"Mathematik ist die Sprache des Universums, der Intelligenz und erspart mir 1000 Seiten zu lesen.",
"Es rollen sich mir die Fussnägel auf, wenn ich ins Internet gehe und gucke unter Skalarwelle.",
"Eine gewöhnliche DILLGURKE habter das gehört!",
"Wenn ich meine bisheriges Leben betrachte, dann stelle ich fest, dass es Höhen und Tiefen gab.",
"Wir hatten den ersten Videorekorder der Welt.",
"Mein nächstes Buch ist auch schon fertig: Die schwarze Macht.",
"Die schwarze Macht da geht es um Templerwissen und um das Deutsche Reich.",
"Wir hatten die erste Polaroid-Kamera allerdings S/W-Aufnahmen.",
"Wir hatten Bildtelefon. Da konnte man zu bestimmten Städten telefonieren und sah sein Gegenüber für 50 Reichspfennige.",
"Sämtliche Naturwissenschaften Eins, wie sich das gehört.",
"Mein Kampf gegen die Lügen der Alliierten das war der Grundstein.",
"Die ABC-Waffen gingen alle durch meine Hand, also Massenvernichtungswaffen.",
"Die Wende war nicht plötzlich, die wurde schon von den Zionisten 1899 geplant von den Illuminaten.",
"Alle 100 Jahre findet ein großer Illuminati-Kongress statt, da werden die Ziele für die nächsten 100 Jahre gesteckt, auch der Euro.",
"Heute werden wir über HAARP, sprich Wetterkriegsführung sprechen.",
"Wir haben mit Braunsgas gearbeitet.",
"Wir haben Blei verwandelt in Gold und Silber, Platin.",
"Wir haben versucht Quetschmetall aus den Vril-Werkstätten zum schmelzen zu bringen.",
"Quetschmetall wurde auch verwendet für Plasma-Antrieben von reichsdeutschen Flugscheiben.",
"Napoleon Bonaparte ist auch eines meine Vorbilder, Militärisch.",
"Konfuzius, das ist der Status Quo.",
"Für die Templermitglieder, Bernd? Nächsten Sonnabend, Roseneck ab 18:00 Uhr, weisse bescheid?",
"Wenn man seine Katze in den Mikrowellenherd zum Trocknen reinschiebt, sieht man die Wirkung am Besten.",
"Man kann davon ausgehen, dass in jedem Neubaublock einer mit Mikrowelle experimentiert.",
"Gegen Skalarwellen haben sie die Arschkarte - also die goldene.",
"Es kommen gigantische Umwälzungen auf uns zu.",
"Die Sowjets gackern nicht, bevor das Ei gelegt ist.",
"Man steckt erst richtig drin im Wissen, wenn man auch einer Klofrau das Raum/Zeit-Gefüge erklären kann.",
"Viehzeug muss gepudert werden!",
"Sie können alles was gelehrt wird zu 90% vergessen, noch... noch mehr!",
"Es gibt Evolution heißt AUS-wicklung, alles schon da gewesen.",
"Wer von euch kennt die theosophische Lehre?",
"Nach der lemurischen Rasse, folgte das atlantische Imperium.",
"Die ursprünglichen Wesenheiten waren die Reptos, die ich persönlich sehr mag.",
"Die Reptos auch, die haben sich nur unterirdisch verlagert durch den Einschlag.",
"Die fette Kuh erhebt sich.. sehr schön. Na iss doch wahr.",
"Ich habe so viel Chaoten in letzter Zeit kennen gelernt, also... Schade um die Zeit, da hätte ich schon hundert Differentialgleichungen lösen können.",
"Jetzt kommen wir zum Schluss der heutigen Lektion.",
"Woher sollen die Rassen, Negroid und Asiatit herkommen oder Isaac Krummburg?!",
"Altmeister Peter Schmidt, in Front vor mir sitzend.",
"Ich liebe Katastrophen!",
"Der Mensch ist eine energetische Matrix!",
"Ich kann auch radioaktive Strahlung neutralisieren!",
"Sie müssen schon Ihren Kopf jetzt zum Denken benutzen und nicht als Hutständer!",
"Magie ist Physik durch wollen!",
"Deutsche Raumfahrt ab 1934.",
"Wir werden ja heute von Hacke bis Nacke belogen.",
"Westliche Wertegemeinschaft und Demokratie sind auch aus meinem Wortschatz GE-STRI-CHEN!",
"Biologie ist Physik.",
"96 Flugzeuge * 60 Minuten * 14 Stunden * 40 Passagiere.",
"Während des dritten Reiches war Nicola Tesla hier zu Besuch.",
"Mikrowellenstrahler!",
"Grüße aus der 9. Milchstraße.",
"Implosionstechnologie!",
"Die Sonne ist kalt!",
"Es gibt eine Art galaktischer Konföderation in unserer Galaxis.",
"Die Tür, ja was ist denn das?",
"Das nächste Treffen findet an Führers Geburtstag statt.",
"Ich sitze auf der Spitze der Pryramide.",
"Handy an die Wand schmeissen, weg damit!",
"Was macht die Sonne uns vor, Implosion.",
"Das hier ist nichts anderes als ein Strafplanet.",
"Es gibt ein Prag - in Bayern.",
"Ich kann aber auch, im Rahmen der Wetterkriegsführung, Tornados künstlich erzeugen.",
"Die Tür schon wieder!",
"Meine Name ist Stoll, ich bin promovierter Naturwissenschaftler.",
"Ich befasse mich mit freier Energie.",
"Wie kämpfen Reichsdeutsche?",
"Um in die innere Hohlwelt zu gelangen, muss ich 4000 km Gesteinsmaterial überwinden.",
"Es gibt nur energetische Felder.",
"Übrigens, meine Energiegruppe hat auch Kontakt zur Dritten Macht.",
"Nichts ist unglaublicher als die Wahrheit.",
"Es gibt nur Expansionsstrudel und Implosionsstrudel.",
"Unser Universum ist ja ein Perpetuum Mobile.",
"Kevin los, schreib das auf!",
"Die Geheimbasen des Deutschen Reichs haben auch den Wiederaufbau Westdeutschlands organisiert.",
"Todesstrahlen, Todesstrahlen!",
"Man sollte sich mit Putin gut stellen - Ich kenne ihn übrigens persönlich, komme mit ihm gut klar.",
"Ich bin ein Mensch, wenn ich schon Schnee sehe, kriege ich 'ne Erkaeltung.",
"Ich hasse Schnee, ist was fuer dumme Bauern.",
"Alles was unter 20 Grad ist, ist fuer mich Frost.",
"Arme und Beine bilden eine rotierende Scheibe, die Ohren flattern im Wind und das Arschloch bildet den höchsten Punkt.",
"Ich beherrsche die englische Sprache in Wort, Bild und Schrift.",
"Die Natur bracht Wirbel.",
"Mit Dynamit beginnt man den Tag dynamisch!",
"Die Sowjets gackern nicht bevor das Ei gelegt ist.",
"Ich lache über Naturkatastrophen, die ich liebe!",
"Internet ist ne schöne Waffe.",
"Internet ist so viel Schrott!",
"Wer kennt Mastodon?",
"Namen sind für mich Schall und Rauch, für mich sind Zahlen wesentlich.",
"Was wird heute gelernt an den Schulen? Schrott! Müll!",
"Wer hat hier Bier, Horst?",
"Trilobiten Dreilapp-Krebse, offiziell ausgestorben, hahahaha!",
"Unsinnige Talkshows, wenn ich das schon sehe - Uääääh!",
"Wir leben in einer Welt von Schwingungen, sprich Frequenzen, und damit korrelierender Wirbelmechanismen!",
"Mt diesem Braungas haben wir auch Elementtransmutationen vollbracht, allerdings machen wir das jetzt eleganter, mit einer Art Kaltlaser",
"3 mal Storgram reinen Alkohol! Das schirmt gegen radioaktive Strahlung ab.",
"Wer kennt die Maxwell'schen Gleichungen?",
"WAFFENSYSTEME! Da wirds interessant!",
"Ein dummes Volk lässt sich leichter beherrschen.",
"Lass das Flugzeug auf ein Wohnhaus stürzen, dann haste auch die Arschkarte.",
"Was sind die Pyramiden, wer weiß das? Schlüssel der Energie!",
"Die altindischen Vimanas! Vimanas heißt Fluggerät Sanskrit, flogen mit Quecksilberwirbelmotoren.",
"Facebook, das ist alles was für Psychopathen meiner Meinung nach.",
"Die jetzige elektromagnetische Theorie, wie sie an Schulen und Universitäten vertreten wird, ist falsch.",
"Ich kann Zeit beschleunigen, ich kann Zeit aber auch verlangsamen.",
"Täglich sterben tausende von Tierarten aus.",
"Wir leben in einer virtuellen Scheinwelt.",
"Skalarwellen oder Teslawellen sind eigentlich Wellen des Raum-Zeit-Kontinuums.",
"Skalarwellen knallen quer Kontinente und Ozeane.",
"Die Russen verfügen über Monsterbomben.",
"Am besten einen Stiefel Whisky trinken.",
"Zuerst probiert man dekadente Musik in Sydney, Australien aus.",
"So schön Waffen sind - es hat keinen Sinn, Gewalt mit Gewalt zu begegnen.",
"Man kann mit Skalarwellen experimentiern.",
"Wenn man den Algorithmus erkannt hat, und ich hab ihn erkannt, erspare ich mir zehntausende Seiten zu lesen.",
"Was bedeutete die Wende für mich? Zunächst einmal nur Nachteile.",
"Kurz nach der Wende gründete ich die Fachgruppe Rätsel der Erdgeschichte, die sich auch mit Physik und Paläoastronautik beschäftigte.",
"Eines Tages bekam ich in diesem Zusammenhang Kontakt zum Templerorden, wo ich heute leitend tätig bin.",
"Licht ist keine Grenzgeschwindigkeit, vorsicht. Skalarwellen und stehende Welle hat ein vielfaches mehr.",
"Fußball... Gotteswillen - Opium fürs Volk saggich nur. Brot und Spiele. Iss was für Bekloppte.",
"Sportarten guck ich nur das, die ich selbst betrieben habe, bis zur Meisterschaft: Schach, Fechten, Degen, Florett, Schwert, Schießen und Military-Reiten, alles andere kann mich keiner hinterm Ofen vorlocken.", "Angst und Unmöglichkeit sind aus meinem Wortschatz gestrichen.",
"Denken Sie zum Beispiel an die pervertierten Loveparade-Diskotheken und vieles mehr.",
"Das deutsche Volk verblödet da gibt es ein Buch im Kopp-Verlag glaubich.",
"Unterstes wird zu Oberstes gekehrt.",
"Dich meine ich Peter, nicht einschlafen!",
"Aus Sicherheitsgründen habe ich keine andere Namen außer meinem genannt nach dem Motto:",
},
{
"Ganz wichtig, steht auch auf den reichsdeutschen Wissen.", "Im Indo-Pazifik kann man sie lebend finden.",
"Dann, (...) die haben mit uns Ähnlichkeit, die lemurische Rasse.",
"Was jeder Erdenbürger wissen sollte!",
"Das ist wieder ne Sache für sich.",
"Das wäre ja dann wie bei der GEZ.",
"Die würden bei mir alle in Physik die Note 100 kriegen.",
"Das ist wichtig zu wissen.",
"Ja, das ist freie Energie.",
"Was an der Schule natürlich nicht gelehrt wird und an den Universitäten auch nicht.",
"Wir sprechen von infometrischen Feldern.",
"Auch ne kosmische Zahl.",
"Energielobby, da ham was wieder, hähä!",
"Haltet euch fest!",
"Wenn andere die Fenster putzen (...), da löse ich partielle Differentialgleichungen.",
"Aber Vorsicht bei der Numerologie!",
"Tödliche Organwellen.",
"Da kann der dämliche Ami nur träumen!",
"In Russland nennt man das heute die skalara Haubitze.",
"Zigfache Überlichtgeschwindigkeit - ganz wichtig.",
"Man kann hinkommen, wo man will - alles Mist!",
"Denn die Erde ist ein lebender Organismus, vergesst das nicht.",
"Wenn man einmal in den Fängen der Ärzte ist, dann hat man verloren.",
"Sie wirken auf der Atomebene, nicht auf der Molekularebene - ganz wichtig.",
"Angewandte MaTHEMAtik!",
"Und es geht nicht um ein Computer-Weltraum-Spiel!",
"Für wie dämlich halten die uns!",
"Da komme ich mir vor wie eine tibetanische Gebetsmuehle oder tausend Studenten", "Verbotene Archäologie, das sind insgesamt drei Teile.",
"Als Däniken hochkam sein.. der Angehörige vom ZDF wurde erschossen.",
"Wasser ist Gift!",
"Im Gegensatz zur Involution EIN-wicklung. Ha! Physik, Physik... hä!",
"Wir sind die nächste 4,5 Rasse, ne... die arische.",
"Man kann nicht auf allen Hochzeiten tanzen.",
"Ich selber bin die graue Eminenz.",
"Reste vom atlantischen Empire das atlantische Imperium.",
"Deshalb müssen wir sie mit aufklären.",
"Wie heißt er? Peter Fitzek? Hab ich kennen gelernt da.. da schließt sich der Kreis!",
"Es gibt dort ne Menge Häkchen und Ösen man kann geteilter Meinung sein.",
"Was da an Mimikry ausgeübt wird (…) das was ja im Tierreich bekannt.",
"Ruhe da hinten!",
"Auf die Maßeinheiten der Kernphysik hab ich bewusst verzichtet, denn außer mir würde das kaum jemand begreifen.",
"Das wird ja an den Schulen nicht mehr gelehrt.",
"Das kommt ja erst nächstes mal, da muss man das Gehirn schon arbeiten lassen.",
"So sind Höhen ohne Tiefen nicht denkbar siehe hermetisches Gesetz des Universums.",
"Viele Frauen, die machen da Channeling und da kommt nur elektro-magnetischer Müll herüber.",
"Ich denke an die Vril-Damen transmediale Kontakte zum Aldebaran.",
"Ich hab auch nur für die Fächer was getan, die mich interessiert haben gab dann nur Einsen oder Dreien.",
"Eine Zeit meiner Sammlertätigkeit begann.",
"Ab meinem 14 Lebensjahr verfügte ich bereits über eine beachtliche geologische und gestaltete an Schulen entsprechende Ausstellungen, welche eine hohe Resonanz hatten.",
"Seit meinem 15. Lebensjahr wohnte ich in der Reichshauptstadt Berlin.",
"Während dieser Zeit besuchte ich zwei Jahre lang die Abendschule, 11. und 12. Klasse, so mal nebenbei.",
"Da bin ich übrigens auch Mitglied, Prä-Astronautik- Äntschiens Äh... Ästronaut Society, mit Urkunde (...) und leitete die Uranier-Gruppe Astrophysik.",
"Aber man latscht nur einmal auf die Harke.",
"In der Kruste! Nicht die innere Hohlwelt! Das ist ein großer Unterschied!",
"Mindestens sind das reine Vegetarier, was mir schon sympathisch ist.",
"Die ganzen Darwinismus-Lügen.. vergesst es!",
"Ja aus´n Negern! (…) Aus Schwarz wird nicht weiß!",
"Zu viel Flüssigkeit.. der Regen, der reicht schon.",
"Mindcontrol, Bewusstseinskontrolle, versklavte Gehirne und so weiter und so fort.",
"Das sind natürlich dann schon fast Superbomben.",
"Das sind einzigartige militärische Anwendungen.",
"Meine Temperaturen sind 40 Grad plus und 100% Luftfeuchtigkeit.",
"Das nennt man KALTE FUSION!",
"Die Zusammenhänge sind glasklar!",
"Klar?!",
"Muss mann wissen!",
"Vergessen Sies!",
"Bekannt ja?",
"Alles andere ist unnötig.",
"Wer weiß das? Wieder keiner!",
"Sehr Gut!",
"Klar, ne?!",
"Silentium!",
"Ruhe!",
"Schwarze Sonne, bekannt!",
"So einfach ist das.",
"Es gibt keine Zufälle!",
"Die Erde ist ja hohl.",
"Die lachen uns aus!",
"Gemeint ist das organische Germanium 32.",
"Unsere Energiegruppe ist in der Lage das künstlich herzustellen.",
"Mikrowelle, Skalarwelle!",
"Physik, Mathematik, Philosophie.",
"Wie sagte noch Napoleon:",
"Gibt´s interessante Fachliteratur.",
"Flugscheibenkonstrukteur!",
"Da werden Sie staunen!",
"Muss man natürlich wissen.",
"Wissen auch die Wenigsten.",
"Den Leuten wird speiübel, die fallen um.",
"Gibt es, darf man nicht außer Acht lassen.",
"Wie mein Templerbruder vom Altodern Nobert Jürgen-Ratthofer zu sagen pflegte:",
"Wisst Ihr was das heißt? Eine Million Jahre?",
"Da haben wirs mit einem Satz!",
"Ja.. summ summ summ.",
"Ich weiß auch mittlerweile auch, wo die Vril Odin (hinge?)startet ist - zum Aldebaran.",
"Geht in eine kalte Fusion.",
"Und der wurde vom Finanzjudentum auch nur ausgenutzt.",
"Dafür musste er sterben.",
"Das hat auch die Blawatzki erkannt.",
"Die Wurzel aus -1 ist lösbar.",
"Was ist denn da wieder los? Wo ist meine Panzerfaust?",
"Du erinnerst dich, Peter!?",
"Was wir haben, die himmlischen Flugscharen, ne?",
"Die weiße Rasse stammt vom Aldebaran, vergesst das nicht!",
"Wenn ich jetzt an Yellowstonepark denke, kann bald passieren, herrlich! Ich liebe ja Katastrophen.",
"Ich finde Erdbeben schön.",
"Wenn sich Risse auftun, ganze PKWs versinken, hehe herrlich!",
"Alles, auch das Universum, ist rhythmisch, zyklisch aufgebaut.",
"Es gibt einen energetischen Frühling.",
"So muss das sein!",
"Alles nur störende Mikrowellen.",
"Nagelneue Flugscheiben.",
"Mit Mikrowelle runterholen!",
"Nach Möglichkeit mit wenig Blutvergiessen, vergesst das bitte nicht!",
"Eine Art Monarchie oder weiß der Geier was.",
"Das ist eine Aufkraft!",
"Kraftlose Schwätzer, die werden untergehen.",
"Die kann man erwerben gegen 2 Euro.",
"Das sind Schmutzfinkjournalisten, die gehören an den Galgen.",
"Das ist geheimes Templerwissen.",
"Das ist keine mongolische Mikroelektronik sondern deutsche Hochtechnologie!",
"Mikrowelle, Skalarwelle!",
"Daher die vielen Rassen, die unmöglich alle von dieser Erde stammen können.",
"Wenn man seine Katze in den Mikrowellenherd zum Trocknen reinschiebt sieht man die Wirkung am Besten.",
"Man kann davon ausgehen, dass in jedem Neubaublock einer mit Mikrowelle experimentiert.",
"Gegen Skalarwellen haben sie die Arschkarte - also die goldene.",
"Unsinnige Talkshows, wenn ich das schon sehe - Uääääh!",
"Es kommen gigantische Umwälzungen auf uns.",
"Ist das bekannt HAARP, Alaska, Wetterkriegsführung?",
"Stärke 9, das ist der Daumen Gottes.",
"Magnetohydrodynamik!",
"Alles ist nur Bewegung oder Geschwindigkeit oder Schwingung!",
"Rotwein ist gesund - Templerwein!",
"Irrtum, Gezielte Desinformation!",
"Bis auf 200 Meter tief und mehr werden alle Hohlräume ausradiert",
"Repetitio est mater studiorum!",
"Dissonanzen - Eine Dissonanz jagt die andere!",
"Bayern ist der Schlüsselpunkt!",
"Ja Kevin! Da ist was im Busch!",
"Die Erdkruste ist ja weltweit ein Gangsystem.",
"Eine Million Reichsdeutsche leben dort unten, in der inneren Hohlwelt.",
"Dort leben ja mehrere Zivilisationen, nicht nur eine. Ich hab Karten darüber.",
"Ich halte mich auch kurz, denn in der Kürze liegt die Würze.",
"PETER! Das betrifft auch dich!",
"Nuklear oder nicht-nuklear ist egal. Hauptsache alles ist zerstört.",
"Wenn es heißt: Den Stecker ziehen! Dann wird ein bestimmtes Gebiet zerbröselt, plattgemacht - Flächenbombardements!",
"Apropos unterirdische Bauwerke: Das Verhältnis von oberirdisch zu unterirdisch ist 1 zu 4!",
"Ich erinnere noch einmal daran, dass mindestens rund eine Million reichsdeutscher Patente in alliierte Hände verschwand!",
"Mathematisch bedeutet das, dass mindestens einfache trigonometrische Gleichungen gelöst werden.",
"Ich weiß auch, wie man sowas bauen kann - Mikrowellenterror und dergleichen mehr.",
"Peverse Gehirne sind das, die sich sowas ausdenken.",
"Klaus, denk auch an Chemtrails!",
"Haarp-Projekt Alaska und anderes lässt grüßen.",
"Absichtlich, richtig Mario!",
"Übrigens, Spannung... Millionen von Volt - um das mal zu verdeutlichen!",
"Vier-dimensionale Räume, gibt es!",
"Es gibt auch nen Vier-dimensionalen Würfel.",
"Die sind den Amis um mehrere Nasenlängen voraus.",
"Ähnliches ist ja auch in Deutschland geplant, Vorsicht!",
"Irgendwann ist Schluss mit lustig!",
"Ein Kamerad von mir musste da sein Leben lassen.",
"Es handelt sich demnach um einen deutlichen und jederzeit reproduzierbaren Beweis für Homöopathie.",
"Bei Freimaurern, Illuminaten sagen wir mal (...) hat das alles eine Bedeutung.",
"Mathematik mein lieber Mario, hö?!",
"Wird natürlich totgeschwiegen.",
"Die hatten mehr Verluste als in Pearl Harbour, hihi.",
"Finanzdienstleistungen alles son Schnullifax, da weiß ich, wie die Verbrecher arbeiten.",
"Durch jenen Verlag, und das ist jetzt ganz wichtig, gelangte ich an Schriften und Videos zum Thema Reichsdeutsche Hochtechnologie.",
"Flugscheiben mit non-konventionellen Antrieben, Elektrogravitation und Gravitationsabschirmung und Überlichteffekt.",
"Ich muss nur dazu sagen, in Naturwissenschaften kenne ich mich überall sehr gut aus, da macht mir so schnell keiner was vor.",
"Im erstgenannten Buch, Hochtechnologie im Dritten Reich, habe ich nicht nur physikalisch, mathematisch reichsdeutsche Technologien beschrieben, sondern räumte auch die hörigen alliierten Lügen gegen das Deutsche Reich auf.",
},
{
"Ja was sind denn das? Das sind Umschlagplätze für Drogen, Waffenhandel und Rotlicht-Milieu, mehr ist das nicht.",
"Damit haben Sie die Eigenschaft die Zeit der Zellen quasi zurückzudrehen.",
"Überall hat man dann die goldene Arschkarte.",
"Auch für dich wichtig, Mario - für deine Experimente.",
"Merkt ihr die Korrelation? Nachdenken!",
"Ich habs gesehen, Fata Morgana, Namib Wüste.",
"Denn Hunger und Durst macht böse.",
"Übrigens gibt es kein Gut und kein Böse in dem Sinne.",
"Die armen Kinder, was aus denen werden soll - ja Mutanten, da hab ich auch kein Mitleid mehr!",
"Man steckt erst richtig drin, wenn man auch der letzten Klofrau erklären kann, was Zeitreisen sind.",
"Schmeiß das aus dem Fenster!",
"Hähä!",
"Ein Wahnsinn ja.",
"Bazillus Dummheit sag ich nur.",
"Das muss man begreifen, ist ja wirklich leicht.",
"So lange ich lebe wird mein Kampf gegen die Alliierten anhalten.", "Wer das begreift, der weiß schon sehr viel.",
"Levitation! Mein Gott, die indischen Gurus machen uns das vor.",
"Aber steigtert euch nicht zu tief hinein - ich denke da an die Zahl 23 und was es alles gibt.",
"Kevin du beschäftigst dich damit hoffentlich (...) - du, ich frag Dir das ab sonst.",
"Richtig Mario - siehste Mario denkt mit, das gefällt mir an dir!",
"Man muss das dazu auch mal philosophisch betrachten.",
"Die sehr gefährliche amerikanische Lanzenviper (...) und der Mensch stirbt elendig innerhalb von 20 Minuten.",
"Ja, Heil!",
"Nuklearbomben sind Flöhe dagegen.",
"Das sind kranke Gehirne, aber es ist so.",
"Formeln sind viel besser zu Handhaben, ist wie ein Krimi.",
"Aus tausend Seiten mach ich euch eine.",
"Anschließend machen wir 'ne Raucherpause.",
"Die Inselaffen hasse ich sowieso!",
"Wir Physiker sprechen vom sogenannten Dirac-Meer.",
"Die muss man anzapfen entsprechend einem Implosions-Strudel.",
"Das heisst eine logarithmische Spirale raum-zeitlich betrachtet nach Innen.",
"Nicht umsonst ist ja eines meiner Bücher ein Bestseller.",
"Sie ist ein Perpetuum Mobile!",
"Das ist die menschliche Zelle im Schnitt!",
"Das Wort Zufall ist aus meinem Wortschatz gestrichen.",
"Muss man schon dann kümmern, wenn man dran kommen will!",
"Das ist kein Science Fiction!",
"So einfach ist das, wenn man um die neue Physik weiß!",
"Und die sind zum Pluto, dem erdfernsten Planeten gestartet.",
"Für mich ist das der Elektro-Jude.",
"Ne schöne Waffe, sollte man mal gegen die Loveparade einsetzen.",
"Ein versteckter Hinweis, dass der Mond in reichsdeutscher Hand nämlich ist.",
"Zack, einfach ist das.",
"Kein Problem!",
"Da staunt ihr, was?",
"Mein Gott!",
"Ich nehme auch an, dass da auch das galaktische Imperium Aldebaran eine wesentliche Rolle spielt.",
"Wir dürfen nicht mit irdischen Maßnahmen herangehen Leute, vergesst das nicht!",
"Mit KRAFT!",
"Das A&O in der freien - in der Physik.",
"Na, wer hat Warsteiner bestellt?",
"Die doofen Amis, die trauen sich da nicht ran, ist doch klar.",
"So lebt man ruhiger und energetischer.",
"Hatten wir auch schon im 3. Reich.",
"So einfach ist das, muss man nur wissen.",
"Da bleibt von den Plattenbauten auch nichts mehr.",
"Dabei denke ich an die Allee der Gehenkten.",
"Knüppel aus dem Sack!",
"Ein zweischeidiges Schwert,ne?",
"Auch nachzulesen in meinem Bestseller-Buch.",
"Ich sage nur Bipolarität des Universums.",
"Spass muss sein.",
"Das erfordert natürlich etwas Gehirnschmalz.",
"Die Meisten begreifen es leider nicht, darauf kann ich natürlich keine Rücksicht nehmen.",
"Oder ich lass die Fackelmänner los!",
"Und da braucht man sich nicht zu wundern, über die vielen Mutanten, die rumlaufen.",
"Nur Dreck, Nur Dreck, und der Bürger sieht sich das an!",
"Man nennt das eine so genannte skalare Haubitze!",
"Das hole ich locker wieder rein mit meinen Schriften.",
"Da brauche ich keine Nuklearwaffen - nichtmal Mikrowelle.",
"Das arme Tier, naja gut - was solls?",
"Das ist eine stehende Welle, die ist sofort da.",
"Eine Welt voller Mutanten und Zombies mit einem IQ geringer als eine Dillgurke.", "Scheiße gesellt sich zu scheiße!",
"Und zur Not hilft eben ein Marsch. Fußmarsch, Wolfsangelmarsch.",
"Vulkanausbrüche - was Schönes!",
"Zisch - Aus, weg war det - ein schöner Tod.",
"Das ist auch gegen Krebs und alles mögliche.",
"Alles ist vorhersehbar.",
"Das kann nur die Dritte Macht gewesen sein.",
"Genau das haben die meisten nicht begriffen - naja, was soll man von Mutanten erwarten?",
"Dort einzudringen würde ich nicht empfehlen! Nirgendwo!",
"Peter Fitzek (…), der kennt wieder die Leute meiner Energiegruppen.",
"Nach dem Motto: Was nicht sein darf, nicht sein kann.",
"Hat noch jemand einen Beitrag zu liefern, Claus?",
"Eins ist aber jeden Fall ist Fakt, dass gewisse Kräfte versuchen die Rechte Szene (…) auseinanderzuplautzen.",
"Alles vermeidbare Risiken!",
"Kontinent Mu die Südhemisphäre.",
"Welch ein geistiger Dünnschiss saggich da nur!",
"Such is life.",
"Wir machen´s wie mit der Schiebewurst - das Beste immer zum Schluss.",
"Da findet man auch Skelette von 8 Metern Länge, humanoid und andere Sachen... Flugscheiben Vimanas und dergleichen mehr.",
"Naja.. bescheuert.",
"Demnach ist die weiße Rasse, also sprich atlantische Imperium, eine Kolonie, eine aldebaranische Kolonie.",
"Ich denke ja ganzheitlich vernetzt, nicht wahr?",
"Besser ist immer der persönliche Kontakt, statt da den Elektrojuden zu nutzen.",
"Da muss man natürlich die Kräfte erkennen.",
"Die Meinungen divergieren sehr sehr stark.",
"Dann folgt nach der Polarrasse, die hyperboreische Rasse, auch auf die Nordhemisphäre beschränkt.",
"Ich beobachte die Szene aber weiter.",
"Muss auch militärische Ordnung herrschen!",
"Nech, die Blawatzki... die Blawatski spricht ja von Wurzelrasse.",
"Sonst krieg ich quadratische Augen!",
"Das ist wie mit der Drehscheibe, man lernt Leute kennen hochinteressant muss ich sagen!",
"Ich halt es mit Napoleons Worten: Angst und Unmöglichkeit sind aus meinem Wortschatz gestrichen!",
"Das ist ausgestoßene, überschüssige Geschwindigkeit! Mehr ist das nicht Leute!",
"Wir sind die Top-Ten, auf der ganzen Erde.",
"Gesamtberlin, wissen auch die wenigsten: 4 mal mehr - Unterdirdisch! Alles verzweigt!",
"Man muss schon wirklich zwischen Dichtung und Wahrheit differenzieren können!",
"Wissenschaftlich, technologisch war das Deutsche Reich den Alliierten um mindestens 100 Jahre voraus, (...) moralisch um 1.000 Jahre voraus.",
"Prä-Astronautik macht der.",
"Darf er nicht drüber erzählen, sonst würde er kein Geld mehr bekommen für seine kostspieligen Reisen.",
"Das ist ein ganz einfacher Algorithmus.",
"Ich muss auch dazu sagen, ich bin auch Sternbild Skorpion da gibt es keine Grauzonen, nur Schwarz oder Weiß.",
"Entscheidend ist die Länge des Frauenhaares als Sender und Empfänger.",
"Die sind sehr empfänglich für Müll.",
"Aber das Frauenhaar, das müssen Sie begreifen, ist magnetisch, das hat ein anderes Magnetfeld.",
"Kann man ablesen, siehe Victor Schauberger.",
"Für die Nichtwissenden mag das wie Glockengeläut in den Ohren klingen.",
"Wer kann das, außer mir?",
"Nun wisst ihr auch, wie man künstlich Erdbeben auslöst.",
"Solche seltenen Wetter-Skalar-Interferometer könnten Kugelblitze produzieren.",
"Mit Überlichtgeschwindigkeit, ich betone: ÜBERLICHTGESCHWINDIGKEIT!",
"Wer die Lüge kennt und trotzdem nichts unternimmt, macht sich mitschuldig.",
"Zerlegen macht Spaß!",
"Heute ist Deutschland ein Entwicklungsland.",
"Es gibt noch andere bösartige Elemente, subversive Elemente Volksschädlinge!",
"Wir werden verfolgt, vernichtet von Isaak Krummbold.",
"Der war sehr gut.",
"Die Erde ist ein lebender Organismus.",
"Die sind nicht weg, die haben sich ins Erdinnere verkrochen.",
"Spaß muss sein, Leute!",
"Das muss man natürlich alles wissen, alles das was reichsdeutsche Hochtechnologie vermag.",
"Alles andere... Schrott!",
"Es gibt auch keine Missing Links. (…) Alles ein Schwachsinn!",
"Das äußerliche dieser Wesenheiten ist uns völlig schleierhaft, (..) Medusen, was weiß ich.",
"Ich fürchte, wir müssen völlig umdenken!",
"Dann haste die diamantene Arschkarte.",
"Mich wundert... kann nix mehr erschüttern.",
"Wir leben in einer sehr interessanten Zeit.",
"Viele Ökosysteme spielen heute schon verrückt.",
"Nichts einfacher als das.",
"Das ist jetzt das, was Sie sich merken sollten.",
"Die werden erhitzt und gehen kaputt.",
"Die knallen durch!",
"Ist ne stehende Welle, junge Dame.",
"Und dann Himmel, Arsch und Zwirn!",
"Es funktioniert ja immer wieder - es gibt ja genug Verblödete.",
"Mögen sie in ihrem eigenen Blut erSAUFEN!",
"Macht es subversiv, geht damit nicht an die Öffentlichkeit, schon gar nicht ins Internet.",
"Informetrisches Feld und informetrische Felder, Pluralis.",
"Muss ich noch deutlicher werden? Ich glaube nicht!",
"Das ist nämlich das A und O des Universums.",
"Wir sind nicht umsonst hier hineininkarniert oder hineingeboren.",
"Das hab ich extern so neben... aus dem Ärmel gemacht.",
"Dort war ich kein geringer als Hauptstrahlenschutzbeauftragter für die gesamte ehemalige DDR.",
"Eine ganz ekelhafte Waffe.",
"Das hatte die deutsche Luftwaffe (…) rechtzeitig erkannt.",
"Liegt im Krankenhaus, ich nehm an, dass sie ihn da mit Mikrowelle traktiert haben.",
"Es gibt keine Zufälle.",
"Bis auf die Haunebu I, die war nur zu 60% Weltall-tauglich, nebenbei bemerkt.",
"Sprache beherrsche ich mehrere Fremdsprachen, ist für mich aber nur Mittel zum Zweck.",
"Meine Meinung dazu stehe ich!",
"Letztlich war er aber nur eine zweibeinige Ertragsmaschine man muss das mal so knallhart sagen.",
"Aber ich schätze mal, wir stehen kurz vor einem Wendepunkt.",
"Darauf setze ich einen Haufen.",
},
}
var sayCh chan string
func Init(ch chan string) {
sayCh = ch
}
func HandleMessage(m *irc.Message) {
tok := strings.Split(m.Trailing, " ")
if len(tok) < 1 {
return
}
if tok[0] == "!stoll" {
line := ""
for i := 0; i < 3; i++ {
line += quotes[i][random(0, len(quotes[i]))]
line += " "
}
line += "[Dr. Axel Stoll, promovierter Naturwissenschaftler]"
sayCh <- fmt.Sprintf("%s\n%s", "*", line)
}
}
func random(min, max int) int {
rand.Seed(time.Now().Unix())
return rand.Intn(max-min) + min
}

10
newsfeeds.conf Normal file
View File

@ -0,0 +1,10 @@
https://robertsspaceindustries.com/comm-link/rss
http://starcitizenbase.de/feed/
https://www.youtube.com/feeds/videos.xml?channel_id=UCVlBNk1uHmMX93SvotZPfbQ
http://imperialnews.network/feed/
http://www.pointofgaming.com/feed/
http://il2sturmovik.com/news/feed/
http://newsfeed.eveonline.com/en-US/44/articles/page/1/20
https://www.shroudoftheavatar.com/?feed=rss2&cat=11
https://www.shroudoftheavatar.com/?feed=rss2&cat=12
http://camelotunchained.com/en/feed/

33
util/util.go Normal file
View File

@ -0,0 +1,33 @@
// vim:ts=4:sts=4:sw=4:noet:tw=72
package util
import (
"bytes"
"strconv"
)
func NumberToString(n int, sep rune) string {
start := 0
var buf bytes.Buffer
s := strconv.Itoa(n)
if n < 0 {
start = 1
buf.WriteByte('-')
}
l := len(s)
ci := 3 - ((l - start) % 3)
if ci == 3 {
ci = 0
}
for i := start; i < l; i++ {
if ci == 3 {
buf.WriteRune(sep)
ci = 0
}
ci++
buf.WriteByte(s[i])
}
return buf.String()
}