Other websites in the Official Discourse Affiliate plugin

For everyone, there is an Official Discourse affiliate plugin allowing you to automatically add your amazon ID in each links that will be published on your forum.


I want to use this plugin to add other websites that offer Affiliate program. I tried another one few weeks ago but it broke the polls in preview for some reason.

Anyway, I tried working on the official one tonight even if I don’t have a lot of knowloedge.


Here is my example : I want to add the french website LDLC. The tag to add on each page is something like this : #52325a32 (this is not my real tag)

There is three links that we usually share :

  • http://ldlc.com/#52325a32 (homepage, I can live without this one)
  • http://www.ldlc.com/b-06b841d7761b563e.html#52325a32 (a cart - useful when we “build” a PC for our users)
  • http://www.ldlc.com/fiche/PB00200087.html#52325a32 (a product page)

I managed to make the easy one work (the product page) with a clever copy/paste because it looked a lot like the amazon one (all caps and numbers, 10 characters). Here is my take on this : https://github.com/iunctis/discourse-affiliate/blob/master/assets/javascripts/lib/discourse-markdown/affiliate.js.es6

But when I tried something else to make all three types of links work, it didn’t work.

I tried multie things like this one : const LDLC_ASIN_EXTRACTOR_REGEX = /\/[A-Za-z0-9/+]/i; to allow different characters even slash (and I deleted the /fiche part in the href). It added the tag but the link was broken.

If anyone has a solution, it’d be great :kissing_closed_eyes:

There is nothing urgent here, I can wait.

Thanks for reading :v:

(edit : I deleted and re-fork the officiel plugin, I had too many messed up commits, I wanted to start from scratch again. So I had to edit some parts of my post)

8 Likes

Yatta!

I did it. But It was painful :sweat_smile:

I think I had a good regex (at least test regex websites seemed to think so) but when I used something like this in the ASIN regex (\/[A-Za-z0-9_\/-]*) it always captured /www and not the url after ldlc.com/.

To succeed, I had to use {5,} in my ASIN regex. This way, it had to ignore the /www. It’s ugly, the experts here will cry while facing this awful coding. But hey… it works :laughing:

There must be a better way to do it tho, if someone has an idea, I can still try it…

Anyway I can move on to the next website I want to add. It will be a lot easier than this one.

From the way you say /www was matching, I think you might want to write a regex that explicitly considers them. It’s hard for me to be sure, though, since I’m not familiar with where this gets used.

Here’s what I suspect will work for you:

(\/[w.]*ldlc.com\/[A-Za-z0-9_\/-]*)

It’s not clear if backslash escaping the slash is needed. If the one in the first post with a / in the character class worked, then I don’t think you need any of the backslashes.

1 Like

I suggest to use http://rubular.com/ to test the regex. You can enter in the text box all three examples you want to have supported and maybe some links that should not be matched. Rubular should use the same Regex engine. It’s ruby as well.

3 Likes

Thanks!

I’ll check these to see if I can make my part of the plugin better :slight_smile:

Just added support for ldlc.com affiliation program :hibiscus:

https://github.com/discourse/discourse-affiliate/commit/085a59c0988d5bc66035dfee2493d346738c5426

5 Likes

@zogstrip Is there a way to use the plugin for Native advertising ? (Chosen topics/post from our own forum used as AD)…That will really helpful :wink:

1 Like

Great job! Can’t wait to try it tonight.

It seems way easier to add affiliates now. I’ll try in a few days for another website, if it works and if it’s interesting I’ll make a pull request.

edit : LDLC works fine. Way better than my modifications. Amazing

2 Likes

Thanks @zogstrip !

Here are others you could add:

I will need the docs for each one of this if possible.

I tried adding DO, but they don’t seem to use that anymore (they use referral links like this https://m.do.co/c/12345abdc).

1 Like

I would avoid adding a bunch of random sites here. Only if the site is a “top 50” website for now.

1 Like

Here is the one for Moo : https://www.moo.com/us/refer-a-friend/ and the one of Pipedrive : https://humancoders.pipedrive.com/settings/invites (you should be logged)
For Moo and Pipedrive, it’s not a param, it’s just a link. I think we should only replace link to root, or even each mention of Moo and Pipedrive.

1 Like

I asked the doc to see if I can extract a pattern allowing me to write a generic one and then adding a new affiliation platform would just be a matter of configuration.

7 Likes

Digging out the thread here.

Are there any plans to add a feature that enables users to add their own custom sites + regex rules?

I would like to refresh this topic!

Are there any plans on providing a way to add custom domains and rules anytime soon?

2 Likes

Agreed. It’s better to make it possible for forum admins to add more custom domains.
Or maybe you can add Temu officially? It is a huge site now.

1 Like