JulianNorton / subreddit-css

used for /r/web_design and /r/graphic_design
https://www.reddit.com/r/web_design
45 stars 24 forks source link

Find a way if there's a web-hook to auto update /r/web_design's css with an update from this repo. #5

Open JulianNorton opened 10 years ago

jrhodkinson commented 10 years ago

This is definitely possible with some sort of continuous integration program. All we'd need is a server (Heroku would work) and another Reddit account with mod privileges on /r/web_design

You'd also have to go through what you do to manually update it: I notice things like %%spritesheet%% in the CSS - do you manually replace these or does Reddit?

purduekenny commented 10 years ago

That's reddit's placeholders for images you upload to their CDN (amazon).

jrhodkinson commented 10 years ago

So does anything need to be done to that between GitHub and Reddit? Or is it as simple as clicking upload on Reddit with the exact same file as is here?

purduekenny commented 10 years ago

That's what I've been doing. I'm not sure what Julian has going on. I just copy the raw and then comment the commit ID to the comment section for revision purposes. I think Julian was wanting something to auto-update the stylesheet if we made a commit here. I'm not sure. We'll have to wait until Julian comments.

jrhodkinson commented 10 years ago

Alright, that sounds simple enough - it'd be easy to automate that if we had a server

purduekenny commented 10 years ago

I do reseller hosting and obviously have my own website. So, as long as shared hosting is a viable server then we have one. I have no experience with Heroku though.

purduekenny commented 10 years ago

@Swadq gave you some flair on /r/web_design for your work. :) Nice to have a non-mod contributing.

jrhodkinson commented 10 years ago

As long as there's the facility to run a cron job, it'd be fine. All the functionality could be written in PHP.

Ideally the CSS should be run through a validator being put on Reddit, but that can be worked in too. Sadly there's nothing we can really do besides that as far as "unit testing" goes.

The way I see it is there'd be a cron job running every 15 minutes that does the following

Also, thanks!

purduekenny commented 10 years ago

Just set up a cron job successfully last week, so it's possible. Who's going to code that? :P No problem. :D

jrhodkinson commented 10 years ago

I'm happy to code it, I'll get it set up on a subreddit of my own and commit it here when it works

JulianNorton commented 10 years ago

Let me see if I can loop in automod's devs…

jrhodkinson commented 10 years ago

Good idea

BenePronomen commented 10 years ago

/r/AutoModerator mod here. I don't develop AutoModerator (that's entirely /u/Deimorz) but I can tell you that updating from a 3rd-party-anything is outside the scope of AutoModerator's capabilities.

JulianNorton commented 10 years ago

@Swadq are you still interested in doing this?

W3D3 commented 10 years ago

deploy.io offers such functions if you want to give that a try.

JulianNorton commented 10 years ago

@W3D3 I couldn't check it out, it's still private.

W3D3 commented 10 years ago

@JulianNorton sorry, wrong link: http://dploy.io/

JulianNorton commented 10 years ago

@W3D3 Not sure how to continue. screen shot 2014-09-19 at 9 46 21 am

W3D3 commented 10 years ago

@JulianNorton Looked into it a bit more, would be easier if there was just a simple hook in github which would send a POST request to a server (I could host) running a simple php script accessing the reddit api at /r/web_design/api/subreddit_stylesheet and updating the css there. I'll code it if i have time.

http://www.reddit.com/dev/api#POST_api_subreddit_stylesheet

JulianNorton commented 9 years ago

@W3D3 Cool, let me know how that goes!

JohnnyDeuss commented 8 years ago

@W3D3 is right about using a hook (GitHub's Webhooks API). I'm willing to code it, but you'll still need a server to host the auto-updating script that gets posted to. It will also need to have access to git and a moderator account to be able to upload the CSS.

JulianNorton commented 8 years ago

@JohnnyDeuss by all means! If you can can it working, I'll figure out how to host it.

purduekenny commented 8 years ago

I have a hosting company. I can do it. On Sun, Apr 24, 2016 at 12:17 AM Julian Norton notifications@github.com wrote:

@JohnnyDeuss https://github.com/JohnnyDeuss by all means! If you can can it working, I'll figure out how to host it.

— You are receiving this because you modified the open/close state. Reply to this email directly or view it on GitHub https://github.com/JulianNorton/web_design/issues/5#issuecomment-213881818

JohnnyDeuss commented 8 years ago

I've got the script working, it automatically updates the stylesheet and syncs the assets folder with the reddit image. I am testing with the css/assets from this repo, but I'm getting:

[line 1823] no image found with name "noresults" background: transparent url(%%noresults%%) no-repeat 50% 50%;

Am I correct in assuming that noresults is not in the repo and was added manually?

JulianNorton commented 8 years ago

@JohnnyDeuss from: https://github.com/Axel--/Naut-for-reddit/tree/master/Images I think it's a mistake that we didn't include it in our fork, and I've not put it in our own images folder.

JohnnyDeuss commented 8 years ago

Seems to work properly. But it does looks like the assets on reddit are not the same as those on GitHub. This is what I get when I sync everything to my test subreddit.

purduekenny commented 8 years ago

Do I need to do anything still?

JohnnyDeuss commented 8 years ago

@purduekenny The script is already on a GitHub repo of mine, so you can already set it up on a server. The images on this repo are outdated though, or at least not the same as the ones on reddit, so they should be updated here. But as far as the script is concerned, only new/modified images are synced, so you're fine without updating the images for now. Should I make a pull request or just leave it on my own repo?

purduekenny commented 8 years ago

I think a pull request is a good idea. Your thoughts Julian?

On Tue, May 3, 2016 at 1:25 PM Johnny Deuss notifications@github.com wrote:

@purduekenny https://github.com/purduekenny The script is already on a GitHub repo of mine, so you can already set it up on a server. The images on this repo are outdated though, or at least not the same as the ones on reddit, so they should be updated here. But as far as the script is concerned, only new/modified images are synced, so you're fine without updating the images for now. Should I make a pull request or just leave it on my own repo?

— You are receiving this because you were mentioned.

Reply to this email directly or view it on GitHub https://github.com/JulianNorton/web_design/issues/5#issuecomment-216603485

JulianNorton commented 8 years ago

pull away!

On Tue, May 3, 2016 at 2:20 PM Kenny Wilson notifications@github.com wrote:

I think a pull request is a good idea. Your thoughts Julian?

On Tue, May 3, 2016 at 1:25 PM Johnny Deuss notifications@github.com wrote:

@purduekenny https://github.com/purduekenny The script is already on a GitHub repo of mine, so you can already set it up on a server. The images on this repo are outdated though, or at least not the same as the ones on reddit, so they should be updated here. But as far as the script is concerned, only new/modified images are synced, so you're fine without updating the images for now. Should I make a pull request or just leave it on my own repo?

— You are receiving this because you were mentioned.

Reply to this email directly or view it on GitHub < https://github.com/JulianNorton/web_design/issues/5#issuecomment-216603485

— You are receiving this because you modified the open/close state. Reply to this email directly or view it on GitHub https://github.com/JulianNorton/web_design/issues/5#issuecomment-216619024

purduekenny commented 8 years ago

@JohnnyDeuss I'm not getting it to work. I'm probably doing something wrong, but I'm not sure what. Would you want FTP access to the server I'm putting it on so you can set it up and then I go in and update it with my mod credentials?

Also, what's your reddit username? I'd like to give you credit for your work.

JohnnyDeuss commented 8 years ago

I could definitely do it, but the problem is that I would both need access to the GitHub repo to set up the webhook and access to a reddit account to set up script authorization. If you want to test what's wrong, you should check the page for that webhook, because GitHub keeps track of all POST data sent to a hook and the reply it gets. The script should be returning some useful error messages that may give a hint as to what is wrong.

Also, my reddit username is /u/BitwiseShift.

JohnnyDeuss commented 8 years ago

Actually, if you give me FTP access I can probably pinpoint what is wrong.

JulianNorton commented 8 years ago

@purduekenny what's the status on this?

purduekenny commented 8 years ago

I flaked. Will follow up today via PM on reddit.

purduekenny commented 8 years ago

Sent @JohnnyDeuss a PM with the information to the server. From what I understand, it's in his hands now until I need to add my credentials to it.

JohnnyDeuss commented 8 years ago

Looking at the error log it's immediately clear that the script didn't work on the server because it used the <=> from PHP 7, while the server is running 5.6.20, easy fix. After that, it stills needs access to the git command, which is now resulting in a "command not found" error. Tried to see if I could get it to install on my own, but failed, so A+ on security.

I don't know if you've looked at the comment block at the top of config.php, as it explains what you need to do to get it to work, like having access to git.

purduekenny commented 8 years ago

I guess I"m a little dense. I haven't used reddit or github API before. I did read through your comments (great job by the way - I'm probably using it as an example for my team in the coming months), but I took the secret as an optional field and I didn't see any other way to give it access to git - so I assumed it was publicly available.

I did go through the reddit section and create a reddit app for it, provided a token and a key along with my username and password.

Also, I updated PHP to 7.

Let me know if I can do anything else to help you along.

Haroenv commented 8 years ago

Related to this, wouldn't it be better to store the raw version of the css here, and minimise the css in a build step? (also related to #57 not being able to properly see the diff)

JulianNorton commented 8 years ago

Yes, minifying css something us owners can do manually if necessary.