SUBSIM Radio Room Forums

SUBSIM Radio Room Forums (https://www.subsim.com/radioroom/index.php)
-   General Topics (https://www.subsim.com/radioroom/forumdisplay.php?f=175)
-   -   36 members from hitting 65,000 (https://www.subsim.com/radioroom/showthread.php?t=183844)

frau kaleun 05-23-11 11:15 AM

Quote:

Originally Posted by Sailor Steve (Post 1668698)
Good point. The majority of folks probably join up just so they can get to the mods.

I think if you look at the Statistics in someone's profile it shows # of downloads in addition to # of posts.

So the criteria could include whether or not someone's downloaded something in addition to whether or not they've posted. That would allow lurkers who created a valid account in order to download something to be retained as members. Seems unfair to delete an account if someone made it for a valid reason. I seem to remember I initially made my account to access the downloads, not to post. I don't know that I even had the intention of ever posting anything.* :hmmm:






*You can all stop laughing now.

Betonov 05-23-11 11:20 AM

Quote:

Originally Posted by frau kaleun (Post 1669006)
*You can all stop laughing now.

WE CAN'T
http://meowcheese.com/files/lolpics/...ughing-cat.jpg

AdeptCharge 05-23-11 11:27 AM

Quote:

Originally Posted by Anthony W. (Post 1668920)
We should send a friendly email notification first. Something like... "We the kind, generous people of Subsim have taken your account hostage and will feed it to the midget spidersquidopods if you do not make a legitimate post within the next day."

FEAR THE ALMIGHTY SPIDERSQUIDOPODS!

Hardly. :doh:

Anthony W. 05-23-11 11:39 AM

Or we could just make it so you don't have to register to dowload, but have one of those letter things.

And a speed cap - and registered users get their speed caps taken off after 100 posts or something

Onkel Neal 05-23-11 11:51 AM

Quote:

Originally Posted by frau kaleun (Post 1669006)
I think if you look at the Statistics in someone's profile it shows # of downloads in addition to # of posts.

So the criteria could include whether or not someone's downloaded something in addition to whether or not they've posted. That would allow lurkers who created a valid account in order to download something to be retained as members. Seems unfair to delete an account if someone made it for a valid reason. I seem to remember I initially made my account to access the downloads, not to post. I don't know that I even had the intention of ever posting anything.* :hmmm:

Trew. I do not want to disturb legit members even if they only joined to d/l. And that's one of the reasons that registration is necessary for downloading, they may become active members and enhance the site.


What I really need is more SQL background. Anyone here know SQL?


User.Joindate >1291165261
User.Lastactivity - User.joindate < 86400
User.Totalposts <2
Sigparsed.Signatureparsed <> ""
Sigparsed.signatureparsed IS NOT NULL

Something like that should help me isolate spammers and still allow dormant accounts to remain intact.

krashkart 05-23-11 11:58 AM

Quote:

Originally Posted by nikimcbee (Post 1668580)
Now, if you vote for Senator Stevens, I could see a good career in your future. We could probably arrange for Krashkart to be senior beer testor at [insert krashkart's favorite beer here] brewery.

http://1.bp.blogspot.com/_7nQCnPaagK...mel_brooks.jpg

I see... yes, I could see myself testing beer. I still get the free Texas BBQ, right? :DL

Jimbuna 05-23-11 12:55 PM

Quote:

Originally Posted by Feuer Frei! (Post 1668890)
In his absence he pays me a generous commission. :O:

LOL...nice one :DL

Penguin 05-23-11 01:21 PM

Quote:

Originally Posted by Neal Stevens (Post 1669029)
Trew. I do not want to disturb legit members even if they only joined to d/l. And that's one of the reasons that registration is necessary for downloading, they may become active members and enhance the site.

What I really need is more SQL background. Anyone here know SQL?

User.Joindate >1291165261
User.Lastactivity - User.joindate < 86400
User.Totalposts <2
Sigparsed.Signatureparsed <> ""
Sigparsed.signatureparsed IS NOT NULL

Something like that should help me isolate spammers and still allow dormant accounts to remain intact.

Maybe I can help a little.
Is your second command meant like it looks? You would select everyone who had his last log-in in in the first 24 hours after joining, if a member logged in after this period, he would not be selected. I think you know from experience if spammers log in another time, or just create an account and never check back.

To check if someone was inactive for more than a year, it should look like User.Lastactivity - User.joindate > 31536000

I think the <>"" can do the job to check if there is a sig (I guess that signaturparesed stores it in plain text), nicer would be Sigparsed.signatureparsed NOT LIKE ' '

As you obviously check two tables, User and Sigparsed, don't forget the JOIN command.

Cheers,
Penguin

STEED 05-23-11 04:55 PM

Quote:

Originally Posted by jimbuna (Post 1668872)
Good idea...keep a sharp eye for anybody going by the name of 'Steed' :03:

Quote:

Originally Posted by jimbuna (Post 1668875)
Good idea....keep a sharp eye for somebody going by the name of 'STEED' :DL

Are now I see why jim so far ahead, double poster, what cheek. :O:

krashkart 05-23-11 05:30 PM

Quote:

Originally Posted by STEED (Post 1669174)
Are now I see why jim so far ahead, double poster, what cheek. :O:


Perhaps we can

krashkart 05-23-11 05:31 PM

Quote:

Originally Posted by STEED (Post 1669174)
Are now I see why jim so far ahead, double poster, what cheek. :O:


learn a thing or two

krashkart 05-23-11 05:32 PM

Quote:

Originally Posted by STEED (Post 1669174)
Are now I see why jim so far ahead, double poster, what cheek. :O:


from the master. :D

Anthony W. 05-23-11 06:59 PM

But I wanna use the squidopods...

Onkel Neal 05-23-11 07:58 PM

Quote:

Originally Posted by Penguin (Post 1669076)
Maybe I can help a little.
Is your second command meant like it looks? You would select everyone who had his last log-in in in the first 24 hours after joining, if a member logged in after this period, he would not be selected. I think you know from experience if spammers log in another time, or just create an account and never check back.

To check if someone was inactive for more than a year, it should look like User.Lastactivity - User.joindate > 31536000

Yes, sir, my intention is to look back at members who joined since Dec 1, 2010, have 0 posts, have a signature, and their last activity was 24 hours from their join date. We find many of the sig spammers simply make an account and never post or log in again.

I want to minimize deleting actual people, so if a guy joined Dec 20 and his last activity was Dec 23, then he stays. I don't mind a guy being inactive for 6 months, as long as he is not a spammer. Does that make sense?

Quote:

Originally Posted by Penguin (Post 1669076)
I think the <>"" can do the job to check if there is a sig (I guess that signaturparesed stores it in plain text), nicer would be Sigparsed.signatureparsed NOT LIKE ' '

As you obviously check two tables, User and Sigparsed, don't forget the JOIN command.

Cheers,
Penguin

Yes, I am studying up on the JOIN command, internal and external. I'm a real noob with SQL so I have to build this query from scratch. Anything you have to say on the subject is welcome, thanks, Penguin. :salute:

Penguin 05-24-11 05:27 AM

Quote:

Originally Posted by Neal Stevens (Post 1669249)
Yes, sir, my intention is to look back at members who joined since Dec 1, 2010, have 0 posts, have a signature, and their last activity was 24 hours from their join date. We find many of the sig spammers simply make an account and never post or log in again.

I want to minimize deleting actual people, so if a guy joined Dec 20 and his last activity was Dec 23, then he stays. I don't mind a guy being inactive for 6 months, as long as he is not a spammer. Does that make sense?

Yes, I am studying up on the JOIN command, internal and external. I'm a real noob with SQL so I have to build this query from scratch. Anything you have to say on the subject is welcome, thanks, Penguin. :salute:

Ok, this makes sense, if the spammer doesn't log in a second time.(didn't check out the spam hunt thread yet to look at actual spammer accounts ;))
EDIT: Found this one while randomly looking for spammers: http://www.subsim.com/radioroom/member.php?u=276634 He logged in 3 days after he registered , however most found had their last activity on the date of registration.

So the command to get all the infos about this account would look like this, this is the explicit statement, you can make it shorter, but this is better for the comprehension

SELECT *(all infos, or whatever you need)
FROM User AS U1 INNER JOIN Sigparsed AS S1 (just abbreviations to type less)
ON U1.UserID = S1.UserId (UserId, or something simular would be your unique key that you can find in both tables)
WHERE U1.Joindate >1291165261
AND (U1.Lastactivity - U1.joindate ) < 86400
AND U1.Totalposts < 2
AND S1.Signatureparsed NOT LIKE ' '
AND S1.signatureparsed IS NOT NULL
ODER BY U1.Username ;

Here is some material to learn SQL: A lecture by David Malan, who teaches at a little, unknown school on the East Coast. I think he is very articulate and intelligible: http://cs75.tv/2010/fall/#l=lectures...res/4/lecture4 At the lower left corner you'll find also the second part (lecture5)

If you are more of a beginner, there is also a SQL lecture in the introduction to Computer Science class found here: http://cs50.tv/2010/fall/ If a lecture is broken you may want to play with the course dates in the upper drop-down menu to access courses from previous years.

Onkel Neal 05-24-11 11:24 AM

Thanks so much for the help. I am going to have a look at those course, I find SQL very interesting, I just never got on track with a tutorial that I could follow.

Question: in your query, you stated
SELECT *(all infos, or whatever you need)
The info I would want to select would be userID, signature, homepage, right?


FROM User AS U1 INNER JOIN Sigparsed AS S1 (just abbreviations to type less)
Abbreviations for what? Or did you simply give the join names really short names, like U1 ? That makes sense.

AND U1.Totalposts < 2
That means any member with 1 post will not be selected, right? I can change that to < 1 and select all the 0 post users, right?

Listen, I really appreciate the help.
Neal

Penguin 05-24-11 11:54 AM

Quote:

Originally Posted by Neal Stevens (Post 1669699)
Thanks so much for the help. I am going to have a look at those course, I find SQL very interesting, I just never got on track with a tutorial that I could follow.

Question: in your query, you stated
SELECT *(all infos, or whatever you need)
The info I would want to select would be userID, signature, homepage, right?

np!
With the star it would show you all infos available (all columns) from both tables. If you want to use this statement to find the homepages it would just be something like this: SELECT U1.userpage - this would be usefull for a list of the userpages. To select more, just put a comma between, select U1.userpage, S1.signature, U1.shoesize, etc

Quote:

Originally Posted by Neal Stevens (Post 1669699)
FROM User AS U1 INNER JOIN Sigparsed AS S1 (just abbreviations to type less)
Abbreviations for what? Or did you simply give the join names really short names, like U1 ? That makes sense.

yes, it just gives short names for the tables in this search query, helps to avoid typing long names for the lazy ones ;) This is helpfull if you want to join several tables. If you want to use the real table names, just delete the "AS..."

Quote:

Originally Posted by Neal Stevens (Post 1669699)
AND U1.Totalposts < 2
That means any member with 1 post will not be selected, right? I can change that to < 1 and select all the 0 post users, right?

In the example, it would select all users with no or one posts. I thought this would make sense, as we saw today, many spammers make one post, however I think those accounts get vaporized eventually :DL.
If you want to select the users with no posts, you use either "= 0", "<1", or "IS NULL". It depends on how the totalposts column looks if a new user is created. If the db puts a 0 (numeric zero) into that column in the moment a new user registers, you can use one of the first two statements. If the column is empty untill the first postcount is written into it, you have to use the IS NULL statement.

razark 05-24-11 01:03 PM

Subsim:
Come for the spam hunts, stay for the SQL tutorials.

Onkel Neal 05-24-11 07:21 PM

Hahaha :har: Nice!

Paco 05-25-11 02:46 AM

Hi,

I'm coming from the SPAM-Hunt thread to this one.

Quote:

Originally Posted by Penguin (Post 1669437)
AND (U1.Lastactivity - U1.joindate ) < 86400


perhaps a little bit easier to handle:

AND (DATEDIFF(U1.Lastactivity, U1.joindat) < "amount of days you want")

BTW, the SQL looks very good for hunting spammers :salute:


All times are GMT -5. The time now is 04:14 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 1995- 2025 Subsim®
"Subsim" is a registered trademark, all rights reserved.