GithubHelp home page GithubHelp logo

foolcode / foolfuuka Goto Github PK

View Code? Open in Web Editor NEW
213.0 213.0 38.0 17.42 MB

FoolFuuka is a high performance imageboard software that is fully customizable. It contains a powerful administration system, extendable plugin engine, and etc. (FoolCode Package)

Home Page: http://foolfuuka.rtfd.org/

ApacheConf 0.04% PHP 71.99% JavaScript 11.04% Shell 0.03% CSS 16.90%

foolfuuka's People

Contributors

bennner avatar bookmarklets-org avatar bui avatar hasumi- avatar nstepien avatar oohnoitz avatar voh avatar woxxy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

foolfuuka's Issues

>async: false

Err, who thought that was a good idea?
When the request is not asynchronous, the JS is stopped, everything is stopped.
As everything is stopped, the browser blocks events, so the page is 'freezed' until the callback returns.

see http://api.jquery.com/jQuery.ajax/

Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

It's a pain when the server is taking some considerable time.

Minor search issues

These are minor issues, they're not even bugs, I'm just putting them here in case you want to mimic Fuuka's search behavior as much as possible.

Because - is a special character, a word with - in won't be able to be searched for if you input it like that. For example, Anon-san, or Akiha-sama. The other special characters, |, + and " don't really pose that much of an issue because usually people don't mistakenly try to search for words with those characters in them while expecting results.

So, as a courtesy to the user, Fuuka, in the _sphinx_escape function (which is used under the same circumstances as your HalfEscapeString method), turns an expression like something-something into "something\-something" (which is technically returns the same results as "something something" because - isn't indexed and is counted as a word boundary character, but I'm still including the escaped - for the sake of correction), so you get the expected results. In that way, the - character is only treated as "exclude the following word or quoted expression from the search results" when it's preceded by at least one space. This matches Google's behavior:
https://www.google.com/search?q=akiha-sama
https://www.google.com/search?q=akiha%20-sama

Example:
http://oldarchive.foolz.us/jp/?task=search&ghost=&search_text=akiha-sama (autocorrected by Fuuka)
http://oldarchive.foolz.us/jp/?task=search&ghost=&search_text=%22akiha%20sama%22 (equivalent search)

http://archive.foolz.us/jp/search/text/akiha-sama/ (broken)
http://archive.foolz.us/jp/search/text/%22akiha%20sama%22/ (equivalent search)

These are the Perl regexes that perform the replacement above (you need the first one so you won't wreck someone who searches by "akiha-sama", otherwise the second one would turn it into ""akiha-sama""):

    $query=~ s/\"([^\s]+)-([^\s]*)\"/$1-$2/g;
    $query=~ s/([^\s]+)-([^\s]*)/"$1\\-$2"/g;

Another thing that I noticed is that making a search with invalid syntax returns a 404. Ideally, it should return an error message so someone who's unaware of search syntax has a chance to figure it out and correct their mistake, instead of being throughly confused. Examples: http://archive.foolz.us/jp/search/text/-/ http://oldarchive.foolz.us/jp/?task=search&ghost=&search_text=-

http://archive.foolz.us/jp/search/text/%22something/
http://oldarchive.foolz.us/jp/?task=search&ghost=&search_text=%22something

Mod threads aren't properly archived

The OP post 58893418 on /a/ was not archived, and posts within it appear in several other threads active on /a/ at the time.

The post was created by a mod with no attached image, and contained an embedded image in the comment.

Internal Reports

After deleting a report, you always return to page 1.

Clicking on a image in a report returns to the reports page, It would be handy if it linked to the post.

Reports page numbers get messy with a lot of pages.

After clearing a whole page of reports something breaks… check pages 1-5 of reports.

Ability to add arbitrary pages

It's getting to me the fact that we can't just add pages like FAQ, suggested sites, rules, terms, whatever, without relying on external files which also dirts the code with our links. This values for FoOlSlide as well, since lots of people have added extra pages to explain their terms in the reader, breaking the links every autoupgrade.

IMO the ideal would be using a markdown parser. Using a simple DataMapper model would get us running in no time. We can then just copy the model in FoOlSlide and add a migration file for the autoupgrade, as well as adding the fields necessary for the IRC bot to work.

We need an array to explain the choices on where to put the links: top, bottom. Usual hide button that allows only admins and mods to see, a path /pages/ to have them collected.

Base64 for image search isn't URL safe

Using base64 directly in URLs for image search can lead For example, the following URL:

http://archive.foolz.us/jp/image/fxjuK05J1URRPeb%2FIcEyyw/

The %2F is an URL encoded /. When pasted into stuff like email clients or web forums, it can silently get turned back into /, which will break the URL. FoOlFuuka itself does this transformation, too. I tried posting the above URL on this post here and the result is a broken link.

To avoid this, Fuuka used the module Mime::Base64::URLSafe, which behaves in the same way as Python's base64.urlsafe_b64encode(). It's actually really simple to implement by yourself, though. It's just a matter of stripping =s (you already seem to do this), and turning +s into -s and /s into _s.

Those two character replacements should make sure you don't have any unexpected problems with breaking URLs.

Search idea - searching only inside specific threads

I don't know if this is the best place to put this, but it seems like you are taking ideas and implementing them into your Foolz Archive, so I'll write it here:

Right now, there is the standard search, which searches every single instance of a query that exists in the archive.

Let's say I am looking specifically for anything related to the character "Mio" from Nichijou.
If I search for "Mio" in /a/'s archive, I would get a million results from multiple different anime, which could range from Nichijou to Strike Witches to K-On.
If I try to include Mio's last name in the query "Mio Naganohara," I would get less results because seriously, who the fuck regularly types out a character's last names every time in a post? The same thing would happen if I were to use "Nichijou Mio" as a query, as they're not always in the same post.

I propose that there's a sort of "subject query" that only specifically searches the content of the OP's posts, like a title search. If combined with the standard query, it should track mostly what you are looking for.
For example, I want to search for "Nichijou" in the OP's post only and "Mio" in that OP's thread.
Another would be to search for a "Katawa Shoujo General" thread in an OP and to search for "Rin" specifically in any "Katawa Shoujo" generals in /a/ and only get posts that mention Rin, the girl with no arms.

Of course, this could apply to the subject field as well, but no one really uses the subject field, so it's better to allow the ability to search the OP's body.

How does this idea sound Woxxy?

White overlay scrollbar on OS X 10.7

The default behavior on OS X 10.7 is to use overlay scrollbars. Chrome or Safari on OS X 10.7 make use of these (Firefox doesn't, it's still using the legacy still).

The color of the semi-transparent overlay scrollbar seems to depend on the background color of the body element (see this thread) in the webpage. In FoOlFuuka, the overlay scrollbar is white, which makes it near invisible when scrolling through the light green page. Just removing the background CSS rule from the body seems to do the trick and trigger a black scroll bar, as it doesn't seem like that rule was actually being applied anywhere, it looks like it's overridden by other rules everywhere.

This is the rule in question, in the body element:

background:#6A836F;

Ability to disable local time & theme options

Too many ask for the possibility to disable local time. While the new Fuuka clone theme has the 4chan time, people might want default theme with 4chan time.

We also need to find a place where to stick the options. Probably the header becoming taller at a click is the best idea.

Could also interesting to have a bookmarkable URL that restores theme options.

No thumbnail height limit

see http://archive.foolz.us/a/thread/59138507/#59147792

Max-height and max-width should be both 126px, unless you plan on creating bigger thumbnails later.

.post > .thread_image_box .post_image {
  max-width: 130px;
  height: auto;
}

Also,

<img src="http://archivethumb.foolz.us/board/a/thumb/0591/38/1325278258198s.jpg" width="126" height="126" data-md5="YMmh0hohtBuToxUa2FJBEA==" class="post_image is_spoiler_image">

width="126" height="126"

Chose or the other, css only preferably.

Search enhancement

Enhancements that we can implement or can try implementing. Most of these come at the same time, since it's all one configuration file.

Will do:

  • Limit search by date (comprehends: dealing with GMT in default theme) #46
  • Limit search to mod/admin posts LIVE (2012-02-09)
  • Limit search to text-only/image posts
  • Config generator in admin panel
  • Switch to SphinxQL

Will try:

  • Try one-letter indexing to see if we can search "4chan x" #37

Considering (leaving for a later time):

  • In-thread search (setting parent to limit search to single thread) #55

Popup quotes going the wrong way

(I don't have time to deal with it now, making notes here)

Several times the popup quote goes the wrong way. At this point it would be just better to send it to the side where there's the most space. I must've had ham in my eyes not to make it like it is.

Server-Side Spam Filter

there should be two types of filters implemented:

  • anti-spam filters for links processed in comments/posts
  • marking comments/posts as spam in reports system to avoid removing records from database (requires adding additional column)

Filename is misplaced

Remove these lines in .post .post_file .post_file_filename:

position: relative;
top: 2px;

Downtime 17/01/2012

We have an unexpected downtime caused by OVH putting us under rescue mode. We have to wait for them to mail us back as we can't set the server back by ourselves.

We're backing-up the data over to our second server during the wait.

We have no idea how long will the downtime be. Depends on when they will mail us back.

Save page

Create a "Save thread" button that will save the thread exactly as it is and usuable with 4cahn X.
All images will be expandable and saved full size.
So we can access thread when want and without archive. Also, will images will be saved full forever!
Thank you

Threads that expire before the archive has grabbed posts register as being deleted?

Example:

http://archive.foolz.us/a/thread/59106694

There were about 10-15 posts after the last one

From 4chan's IRC:

did one of you guys just delete No.59106694 off of /a/ or was that the thread OP?
jdp what
300-some post thread that just 404'd
archive says it was deleted
300 posts huh
I wonder
http://archive.foolz.us/a/thread/59106694
<+I_AM_ABIB> jdp it was pruned most likely
<+I_AM_ABIB> as that happens
<+I_AM_ABIB> to threads
<+I_AM_ABIB> automatically
<+I_AM_ABIB> especially big fucking threads
just wondering because the archive says the thread was deleted
@buttly I can find no record of a moderator or a janitor removing post 59106694
@buttly the remaining two options are pruned and deleted by op

Ability to search for local images

It'd be really nice to be able to search for local images in the archive, like Tineye and GIS.

I know you're going to implement libpuzzle at one point, so this might not be as useful to you, as you'll need to actually upload the image to the server for that to work, but just MD5ing the image and searching for the hash would be a really nice addition.

I baked a quick prototype that reads the file through Javascript with FileReader, MD5s it also through JS and then redirects to the archive with the computed hash. (always redirects to /jp/ only at the moment, you can select whether to redirect to foolz or warosu here). Works in Firefox and Chrome.

more features

Add:

  • Image hovering
  • When clicking a post number, show quote inline

Thanks!

OP indicator disappeared

No more dotted underline?
It's frustrating when you try to hover over a quote and nothing happens.

Updater fails to add some posts

No console errors.

I believe this happens when there are more than one posts to add, the first one gets ignored.
I'm probably wrong, who knows.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.