Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
144
hpr_transcripts/hpr1532.txt
Normal file
144
hpr_transcripts/hpr1532.txt
Normal file
@@ -0,0 +1,144 @@
|
||||
Episode: 1532
|
||||
Title: HPR1532: Project Idea - White-Hat Spam Bot
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1532/hpr1532.mp3
|
||||
Transcribed: 2025-10-18 04:45:03
|
||||
|
||||
---
|
||||
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
Hello Hacker Public Radio, this is Nightwise and on the other side of the world and on
|
||||
the other side of my handset because I'm actually recording this in the car over Skype
|
||||
while having a massive cup of coffee is my good friend and co-host of the AGP podcast
|
||||
and also a regular guest and aficionado on Nightwise.com, Katie Murray. Hey, Keith, how
|
||||
you doing? Good morning, Mr. Nightwise. I'm doing pretty well. I hear we're here to talk
|
||||
about one of our little side projects. Yes, and this sounds like a commercial for
|
||||
steak knives. Hey, Bill, what do you have there? Well, now you ask it. I have steak knives.
|
||||
We plan to do this show to talk about something that we are working on and that we need
|
||||
the community's helpful. Basically, we want to write the ultimate social media promotion
|
||||
tool that helps podcasters and websites, owners and everybody who works with social media
|
||||
help to get their point across to a plethora of social media networks 24, 7 without being
|
||||
a pesky spammer. Yes, so basically what we're saying is we're trying
|
||||
to build a white hat spam bot. That's a good one. A white hat social media spam bot. I'll
|
||||
put it into context a little bit. You guys know that I am a podcaster. I've been so for
|
||||
a couple of years as Keith. We are both bloggers and there's only one downside to being a blogger
|
||||
and a podcaster is that you have to promote your shows. So you have to keep your social,
|
||||
you know, your listeners entertained and how do you do that? Well, you post your shows
|
||||
to social media. Well, that's nice, but we have day jobs and lives. So there is more, you know,
|
||||
to do every day than just see that we can promote our posts to social media. The other downside is
|
||||
that I sleep when many of my listeners are awake. I will live in Belgium. We have a terrible time
|
||||
zone lag of between six or nine hours, which makes for crazy recording schedules like 8 a.m. in
|
||||
the morning while having massive coffee. And what's your time over there, Keith? We're just coming
|
||||
up on 11 o'clock at night. So I'm really ready for bed and nightwise is having coffee. And yeah,
|
||||
so that's part of the part of the challenge is this global distribution of social media followers.
|
||||
I know I have followers from pretty well every time zone, except for the ones that are only over water,
|
||||
if there are any. Yep. And then then there's a question of how do you reach these? How do you
|
||||
communicate your points across to all of these people? There is one tagline I always use and that
|
||||
is let technology work for you. And what I started noticing when I wanted to really engage with
|
||||
my audience is that I was working for technology. I was doing nothing more than trying to, trying to
|
||||
Twitter at the craziest of times and reposting stuff to because there's some Facebook listeners
|
||||
out there. There are people on Google+. And it's just a drag. We also, I think all of us have
|
||||
interesting links that we want to share when we're on our ever RSS readers. So what do we do? We
|
||||
share, share, share, share, share. And then you basically blow out this blob of links in a very
|
||||
short period of time. And everybody who's outside that time field doesn't see it because it gets lost
|
||||
in the stream. And everybody who is online at that time gets spammed. There you go. So what we are
|
||||
looking for is a whitehead spam bot script that posts social media content that you have pre-curated
|
||||
to the social media's because I want to be able to do different channels
|
||||
at a time slot where you wanted to. So it has to be, you know, be able to be scripted and timed.
|
||||
And that's what we want to do. So over the last couple of months, actually it's probably been
|
||||
three or four months now since we've really started thinking about this project. There's been
|
||||
bits and pieces of the solution that have crept forward. And really it boils down to wanting to
|
||||
be able to time things at specific intervals and being able to separate content out into specific
|
||||
streams. Some of them are going to be, you know, like I say blog posts and podcasts. Some of them
|
||||
are going to be, as my wife said, sort of links curated from your feeds. And being able to
|
||||
distribute them out at such a time that it seems, I don't want to say it seems natural. We're
|
||||
not trying to fool the world into thinking that we're online when we're not. But what we want to do
|
||||
is sort of sprinkle these posts out throughout the day rather than pounding down a huge big
|
||||
lead of them all at once. And also being able to put this content to Twitter and to Facebook and
|
||||
to LinkedIn and to really any other Google+. Of course, I forgot about all the almighty Google+.
|
||||
And anywhere else, I mean, identical or anywhere else that people have a following and you want to
|
||||
be able to promote some content or promote what you're working on. And what we basically also want
|
||||
to do is use that content to get a conversation started and then pick up on that conversation
|
||||
when it's starting to go and when you're awake, this is not an automated drone. This is
|
||||
a butler who takes care of this for you so you can pick up the conversations with your community
|
||||
as they start to happen. So what we started at this point to get into a little bit of the
|
||||
technical details and I don't want to make this all about the tech that we've chosen to this point
|
||||
because quite frankly, it's negotiable. The ultimate goal here is to end up with a solution
|
||||
that is automatable, that is cross-platform, that is scheduleable and will interact with all
|
||||
of the necessary social media that we need to get interacting with. And we'll receive its inputs
|
||||
from other services like, for example, using the power of the internet like, for example,
|
||||
if this then that or something like that. Right. Yeah, we don't want a necessarily restrict input
|
||||
to one specific thing. Like right now, we basically have two input streams and that is flat files
|
||||
being generated by if this then that and RSS feeds from blogs and or podcasts.
|
||||
Now, the preliminary work on this script has been done. We are standing on the mighty shoulders
|
||||
of Lord Drachenblut, who together with me a couple of years, I think it's over two years ago,
|
||||
helped me make the proto version of what we're working on right now. What we did was we took
|
||||
start items from Google reader, had if this then that post those into a flat file and have the
|
||||
script take the top line of that file and post it to Twitter and Facebook at a certain time.
|
||||
And because this was the head of the file, we tongue in cheek, no pun intended with tongue in
|
||||
cheek because we called it give head. When Google reader went away, we had a serious problem because
|
||||
the ability that we wanted to to perform didn't really exist anymore, hence the need to take this
|
||||
up a notch because we tried to rework it in the new era without Google reader. But we are now
|
||||
at a point that what we need is something more than just the basic proto give head script that
|
||||
Lord Drachenblut came up with. So now we move into the next part. Where we are right now, we have
|
||||
about 150 lines of Python that will do the basics of pulling items out of an RSS feed and
|
||||
punting them to Twitter. That part of the script is pretty well finished. What we would really like
|
||||
is if there are members of the HPR community who are interested in coding or who are interested
|
||||
in this project or have thoughts, suggestions or best of all time to get in touch with either
|
||||
night wise or myself. And let's go place them open source games and see if we can't build ourselves
|
||||
a white hat spam bot. Now this white hat spam bot will be open source. So this will come back
|
||||
to the community and will be an open source script. To just to give you guys a big picture of
|
||||
what we're going to do, I'm basically going to list up my requirements. Because in this
|
||||
cooperation between Keith and I, Keith has been the brains in the code and I have just been
|
||||
the pesky whiny podcaster who is basically awake when everybody else is asleep.
|
||||
What I want to do is I want to have two things done. I want to have my RSS feed of my website
|
||||
being scanned by the script. So it takes out the description of the show and the link to the show
|
||||
and a small piece of text. Then I want to be able to star a couple of items in either RSS readers
|
||||
or God knows what or select a couple of items and have those titles and links exported or
|
||||
brought to a flat text file and I used if this then that for that. So it's very easy and if this
|
||||
then that to set up a rule that creates a title of a post and a link to a post either or not
|
||||
with some text-adended like I found this link link to the post title of the post and post that
|
||||
into a flat file for example on Dropbox. And this is where our script is going to begin. It's going
|
||||
to begin with an RSS feed that is online and has to be read and parsed and with a flat file that
|
||||
is constantly updated by a different script and that contains links and articles. So this can also be
|
||||
promotional tweets that you have written up in advance and that you want the script to pick and post.
|
||||
Posting needs to be done to Twitter, to Facebook and to Google Plus. You can post a Twitter
|
||||
using the API or an app, to Facebook using an email address and to Google Plus you can also use
|
||||
an email address to post a Google Plus and if you want to know how to do that there is a good
|
||||
description by door to door geek on how he does that. So basically using the API from Twitter
|
||||
and the ability to email to two addresses, one for Google Plus, one for Facebook, we can spread out
|
||||
those messages to the three major social media channels. So that pretty well sums up what we're
|
||||
trying to accomplish with this project. It's something that it seems real super simple on the
|
||||
surface. We're finding it's a little deeper than we originally planned and one of the things
|
||||
that we have to avoid as we move through the project is continually trying to throw features in
|
||||
before the basics of the script are done. The first version of my rebuild that I did with
|
||||
Nightwise a few months ago had tons of features and didn't work. So that's why we sort of simplified
|
||||
things around. This time around I have gone see some pretty bare bones, some Python implementation
|
||||
and are moving forward with that now. So if again if you're interested, if there's if there's
|
||||
any interest in that, please hit up Nightwise Nightwise.com or on Twitter is Nightwise.
|
||||
I'm you can hit me up kdmarygmail.com or you can hit me up on Twitter as well kdmary
|
||||
and we're looking forward to finding some collaborators in the HPR community. Anything else you want
|
||||
to say before we wrap this up? No, I hope that many of you have both listeners and coders are going
|
||||
like, yeah, it would be cool to have something like that because I'm amazed that there is nothing
|
||||
out there that basically does what we want it to do. So I hope you see the benefits that you see
|
||||
the challenges and the opportunities to work on this because it's a very interesting project
|
||||
and this is a call out to the most powerful collective hive of coding brains out there. So I hope
|
||||
that we get get your response. Alright, thanks Nightwise. You know, let's probably let you get
|
||||
your workday started and I'm going to try and find my pillow. Oh yeah, I'm going to get to work.
|
||||
I just finished coffee. See? Now if I tweet something, kd's going to be asleep. I will
|
||||
kd tweet something. I'll probably get it the next day when not when he's asleep. It's not logical.
|
||||
So we need to fix that and anybody who comes up with a fantastic name for the script gets bonus points.
|
||||
Alright, thanks Nightwise. See you guys. Bye. Bye, Keith.
|
||||
You have been listening to Hacker Public Radio at Hacker Public Radio.
|
||||
We are a community podcast network that releases shows every weekday on day through Friday.
|
||||
Today's show, like all our shows, was contributed by a HBR listener like yourself.
|
||||
If you ever consider recording a podcast, then visit our website to find out how easy it
|
||||
really is. Hacker Public Radio was founded by the digital dark pound and the
|
||||
economical computer cloud. HBR is funded by the binary revolution at binref.com.
|
||||
All binref projects are proudly sponsored by Lina Pages. From shared hosting to custom private
|
||||
clouds, go to LinaPages.com for all your hosting needs. Unless otherwise stasis,
|
||||
today's show is released under a creative commons, attribution, share a line,
|
||||
lead us our license.
|
||||
Hey Hacker, you're three, two, one. Stop laughing.
|
||||
Reference in New Issue
Block a user