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개의 좋아요

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개의 좋아요

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개의 좋아요

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개의 좋아요

@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개의 좋아요

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개의 좋아요

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개의 좋아요

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

1개의 좋아요

Here is the one for Moo : Refer a Friend or Business to MOO | MOO (United States) and the one of Pipedrive : Log in (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개의 좋아요

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개의 좋아요

Digging out the thread here.

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

이 주제를 다시 활성화하고 싶습니다!

곧 커스텀 도메인과 규칙을 추가할 수 있는 방법을 제공할 계획이 있나요?

2개의 좋아요

동의합니다. 포럼 관리자가 더 많은 사용자 정의 도메인을 추가할 수 있도록 하는 것이 더 좋습니다.
아니면 Temu를 공식적으로 추가할 수도 있겠네요. 지금은 규모가 매우 큰 사이트입니다.

1개의 좋아요