Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

Class Identifiers

Name: Anonymous 2009-04-10 10:27

Hey /prog/,
If you were to program a BBS similiar to this and wanted to make it object-oriented how would you call the classes? I guess "Reply" would do for any post after the first post. Since you often call the first poster OP (Original Poster) would you call the first post "OriginalPost"? Some suggestions would be great since I'm really bad at making decisions.

Name: Anonymous 2009-04-10 10:28

Read SICP.

Name: sage 2009-04-10 10:43

>>2

Name: >>2 2009-04-10 10:46

Name: Anonymous 2009-04-10 10:47

>>2

Name: Anonymous 2009-04-10 10:49

The Meme "SICP" is so fucking outdated, give me an answer already or all of you just too stupid? For real, troll on /b/ or somewhere else, but why on /prog/? Really, I thought this was a dececnt please compared to the other boards, seems like I was wrong - stupid shitfucks.

Name: Anonymous 2009-04-10 10:52

>>1
Why you would need a different class for the first post and for replies? Why not just have one Post class? What behaviour would change?

Name: Anonymous 2009-04-10 10:56

>>7
Well, oke, take a look at the /x/ board source code for example. If you wanted to write a scraper for it you would have to do that in two classes because the HTML code for the first post is different than the replies.

Name: Anonymous 2009-04-10 10:57

>>1,6
Have you looked at the source code for the other BBS scripts? Shiichan (that powers dis.4chan.org), Kareha, ect. as examples?

Name: Anonymous 2009-04-10 11:11

class Post(object):
    def __init__(self):
        pass

class Reply(object):
    def __init__(self):
        pass

class Thread(object):
    def __init__(self):
        pass

class Board(object):
    def __init__(self):
        pass


This or
class OrignalPost(object):
    def __init__(self):
        pass

class Reply(object):
    def __init__(self):
        pass

class Thread(object):
    def __init__(self):
        pass

class Board(object):
    def __init__(self):
        pass


?

Name: Anonymous 2009-04-10 11:22

type Thread = [Reply]

Name: Anonymous 2009-04-10 11:22

and

type Board = [Thread]

Name: Anonymous 2009-04-10 11:28

Here the classes I'd use:

Post, Poster, Thread, OriginalPost, Reply, OriginalPoster, Replier, PostNumber, PostString, PostName, PostDateTime, PostDate PostMonth, PostDay, PostYear, PostTime, PostHour, PostMinute, PostSecond, Board, ImageBoard, TextBoard, BoardText, BoardImage, ImagePixel, PixelRed, PixelBlue, PixelGreen, PixelAlpha, FileName, FileCharacter, PostCharacter, PostInteger, PostPunctuation

I think it's obvious which class would be sub-classes of other ones, and this is assuming you are working with a language that allows inheritance (obvious OriginalPoster and Replier are derivations of Poster).  It's not everything, but will give you a start.

Name: Anonymous 2009-04-10 11:31

>>13
Hey, I didn't plan to use Java

Name: Anonymous 2009-04-10 11:40

>>13
No factories?  You'll have to redo that.

Name: Anonymous 2009-04-10 11:49

>>8
But that would be part of the scraper logic, not the structure of the objects themselves. Please discard the mentality that it is necessary to have different classes to have differing behaviour; it is unscientific and ultimately destructive.

Maybe parseThread calls parseOP and parseReplyn, but what it returns should simply be a list of Posts, and maybe some thread metadata like title and thread ID.

Name: Anonymous 2009-04-10 11:52

>>16
So something like this would be better:?
class Post(object):
    def __init__(self, soup):
        pass

    @property
    def name(self):
        pass

    @property
    def tripcode(self):
        pass

    @property
    def email(self):
        pass

    @property
    def comment(self):
        pass

    @property
    def file(self):
        pass


Thanks for your great help, btw!

Name: sage 2009-04-10 12:22

Why would anyone want to help him?  I don't understand.

Name: Anonymous 2009-04-10 12:23

>>18
Why not fuckhead?

Name: Anonymous 2009-04-10 12:28

>>19
Go back to whatever board you came from and answer stupid questions like >>1 until you die.

Name: Anonymous 2009-04-10 12:36

>>20
Huh? What did you say? There was so much stupidity in your last sentence that I couldn't understand it. Please have a seat over there and explain it to me in detail.

Name: Anonymous 2009-04-10 12:55

>>21
Back to /b/

Name: Anonymous 2009-04-10 13:00

>>19
Because it's a retarded, nonsensical question. This would be plainly obvious even to you if you'd ever written a line of code in your life.

Name: Anonymous 2009-04-10 13:00

>>22
NO YOU!
btw: win!
for post in thread.posts:
    print post.name, post.tripcode, post.email
"""Anonymous !ijP3rqqf7g darkonasdarkstar@yahoo.com
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anyonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Kanye East None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Darkonas None darkonasdarkstar@yahoo.com
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Ghoseter None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Darkonas None darkonasdarkstar@yahoo.com
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
caerius None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
DZH !ijP3rqqf7g None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
 None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
wickedmount !EJ0MB3jlw2 None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Darkonas None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
DZH !ijP3rqqf7g None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
horror-chan !!D+sifih/QGB None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Darkonas None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
 !.xrvAWQJCw None
Anonymous None baseball12232@aim.com
Anonymous None None
Anonymous None None
69GET None 69GET
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None
Anonymous None None"""


Thanks for all yer help

Name: Anonymous 2009-04-10 13:26

>>24
What is this faggotry?

Name: Anonymous 2009-04-10 13:32

>>25
It's what happens when you help people.

Name: Anonymous 2009-04-10 13:36

>>1-26
Yeah exactly, enjoy your new spam and cancer faggots. *lol*
As if.

Name: Anonymous 2009-04-10 15:44

*lol*
IHBT

Name: Anonymous 2009-04-12 18:05

The advantage /prog/ has over newsgroups such as comp.lang.lisp is that we generally acknowledge we're full of shit, and that's part of the fun of it. The advantage newsgroups have is the people trying not to act like they're all full of shit can occasionally be helpful.

Name: Anonymous 2009-04-12 18:09

>>29
Wow, some intelligent words there.

Name: Anonymous 2009-04-12 18:28

This is a stupid thread and [spoiler]IPHBT[/spoilers].

The problem of making a Shiichan-like imageboard is pretty simple, and using an object-oriented approach would likely only overcomplicate things and add to the overhead, however shiichan's code itself is quite a mess, even if it works. In the event I would use an object-oriented approach at solving such a problem(I wouldn't), I think some of the class names would have such names/structure:

Post - contains an individual post, it has an index, date, name, email, text blob, it's (de)serializable, possibly ID or IP of poster or hash.

Thread - contains an index, a collection of Post, serializable

Board - contains a collection of Thread, board properties, styling, user list(admins)

User - staff user/hash of pass, priviledge level, or even better, a collection of priviledges

BBCodeParser - conversion from bbcode to text which can be stored in a post

From here on, depending on the language you're developing, you're going to have to decide how to render the webpage, how to handle skins(board templates/visual styles), serialization( flat files, binary, databases, etc), what priviledges do admins have, and do you implement them, and so on.

Why are you even a programmer if you can't think about simple things such as these?

Name: Anonymous 2009-04-12 18:28

>>31
grah, I BBCODE fail'd

Name: Anonymous 2009-04-12 18:31

>>31
s/on the language you're developing/the language in which you're developing/

Name: Anonymous 2009-04-12 19:01

>>31
Why are you even a programmer if you can't think about simple things such as these?
There's an implicit premise in this question I feel is unwarranted.

Name: Anonymous 2009-04-12 19:11

BECAUSE I LIEK COCKS. THAT'S WHY FUCKEHAD.

Name: Anonymous 2009-04-12 19:17

>>35
Your post raises 3 questions.
1. What is a ``fuckehad''?
2. Who are you talking to?
3. Why are you posting here? Perhaps you would feel more comfortable at http://img.4chan.org/b/imgboard.html

Name: Trollbot9000 2009-07-01 8:32

By THE COMPUTER LIKE.

Don't change these.
Name: Email:
Entire Thread Thread List