-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from raynormast/dev
Dev
- Loading branch information
Showing
10 changed files
with
205 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
1. Create language filter | ||
2. Create bot filter | ||
3. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,4 +8,7 @@ techhub.social | |
fosstodon.org | ||
|
||
### News & Politics ### | ||
journa.host | ||
journa.host | ||
|
||
### Cool People ### | ||
raynor.haus |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
## If this file is not empty then EVERY host from an earlier file | ||
## including duplicates, will stream to look for these hashtags | ||
|
||
## You can list hashtags with a leading "#" ... | ||
|
||
cybersecurity | ||
mastoadmin | ||
|
||
## Or you can list hashtags with the "#" | ||
|
||
#mastodon |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
docker compose -f docker-compose.yml down | ||
docker build -t fakefirehose . | ||
docker compose -f docker-compose.yml up |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,98 @@ | ||
#!/bin/bash | ||
|
||
cat /config/domains-federated|grep -v "#"|while read -r host | ||
echo > /config/urls.txt | ||
echo > /config/hosts | ||
|
||
# Get federated hosts and begin to stream them | ||
cat /config/domains-federated | grep -v "##" | while read -r line | ||
do | ||
if [[ "$host" != "" ]] | ||
then | ||
/scripts/get-stream.sh $host "federated" & | ||
#filter out empty lines | ||
if [[ "$line" != "" ]]; then | ||
echo "Opening federated line $line" | ||
|
||
#Check for hashtags | ||
if [[ "$line" == *" #"* ]]; then | ||
|
||
echo "$line has hashtags!" | ||
|
||
# Get just the first field of the line, which is the host | ||
host=`echo $line | cut -d " " -f 1` | ||
tags=`echo $line | cut -d " " -f 1 --complement|tr "#" "\n "` | ||
for tag in $tags | ||
do | ||
if [[ $tag != "" ]]; then | ||
echo "Found tag $tag" | ||
# Create a url to fetch for each tag | ||
echo "https://$host/api/v1/streaming/hashtag?tag=$tag $host" >> /config/urls.txt | ||
fi | ||
done | ||
elif [[ "$line" != *" #"* ]]; then | ||
echo "$line didn't have hashtags" | ||
host=$line | ||
echo "https://$line/api/v1/streaming/public $line" >> /config/urls.txt | ||
fi | ||
echo $host >> /config/hosts | ||
fi | ||
done | ||
|
||
cat /config/domains-local|grep -v "#"|while read -r host | ||
|
||
# Get local hosts and begin to stream them | ||
cat /config/domains-local | grep -v "##" | while read -r line | ||
do | ||
if [[ "$host" != "" ]] | ||
then | ||
/scripts/get-stream.sh $host "local" & | ||
#filter out empty lines | ||
if [[ "$line" != "" ]]; then | ||
echo "Opening federated line $line" | ||
|
||
#Check for hashtags | ||
if [[ "$line" == *" #"* ]]; then | ||
|
||
echo "$line has hashtags!" | ||
|
||
# Get just the first field of the line, which is the host | ||
host=`echo $line | cut -d " " -f 1` | ||
tags=`echo $line | cut -d " " -f 1 --complement|tr "#" "\n "` | ||
for tag in $tags | ||
do | ||
if [[ $tag != "" ]]; then | ||
echo "Found tag $tag" | ||
# Create a url to fetch for each tag | ||
echo "https://$host/api/v1/streaming/hashtag/local?tag=$tag $host" >> /config/urls.txt | ||
fi | ||
done | ||
elif [[ "$line" != *" #"* ]]; then | ||
echo "$line didn't have hashtags" | ||
host=$line | ||
echo "https://$line/api/v1/streaming/local $line" >> /config/urls.txt | ||
fi | ||
echo $host >> /config/hosts | ||
fi | ||
done | ||
|
||
cat /config/hashtags | grep -v "##" | while read -r hashtag; do | ||
hashtag=`echo $hashtag | cut -d "#" -f 2` | ||
sort /config/hosts | uniq -u |while read -r host; do | ||
if [[ $hashtag != "" && "$host" != "" ]]; then | ||
echo "https://$host/api/v1/streaming/hashtag?tag=$hashtag $host" >> /config/hashtag-urls.txt | ||
fi | ||
done | ||
done | ||
|
||
cat /config/hashtag-urls.txt >> /config/urls.txt | ||
|
||
cat /config/urls.txt | while read -r url | ||
do | ||
echo "Opening $url to stream" | ||
sleep 1s | ||
./stream-url.sh $url & | ||
done | ||
|
||
if [[ $runFirehose == true ]] | ||
then | ||
/scripts/run-firehose.sh & | ||
fi | ||
|
||
## Don't let the container exit | ||
while true; do sleep 1; done | ||
## We don't have a health check, so just exit after an hour | ||
# If your docker file has restart: always on this should gracefully exit, and | ||
# then restart | ||
sleep 1h | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
url=$1 #A proper URL is all that should be sent to this script | ||
host=$2 | ||
|
||
if [[ "$url" == "" ]] | ||
then | ||
echo "Empty url, skipping" # Exit if an empty URL was sent | ||
exit 2 | ||
fi | ||
|
||
while true # Loop endlessly | ||
do | ||
today=`date +"%Y%m%d"` | ||
|
||
echo "Starting to stream $url in 5 seconds" | ||
|
||
sleep 5s; | ||
|
||
curl -X "GET" "$url" \ | ||
--no-progress-meter | \ | ||
tee -a "/data/$today.json" | \ | ||
grep url | \ | ||
sed 's/data://g' | \ | ||
|
||
while read -r line | ||
do | ||
|
||
if [[ $line == *"uri"* ]] | ||
then | ||
url=`echo $line | jq .url| sed 's/\"//g'` | ||
uri=`echo $line | jq .uri| sed 's/\"//g'` | ||
|
||
echo "STREAMING from $host $url" | ||
echo $uri >> "/data/$today.uris.txt" | ||
|
||
fi | ||
done | ||
done |