Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
1c3444c
Merge pull request #1 from thepracticaldev/master
sarthology Dec 6, 2019
b440e53
Feature 🚀 : Ability to delete messages in chat channels
sarthology Dec 9, 2019
e6f8d29
Minor Bug 🐞: Show message action only for current user
sarthology Dec 9, 2019
e796764
Test cases added
sarthology Dec 9, 2019
bb01218
Bug 🐞: Update message id for receiver
sarthology Dec 9, 2019
8d402cf
Refactoring🛠: Message controller refactoring
sarthology Dec 9, 2019
a8bd27c
Test Cases📝 : Specs for Delete message added
sarthology Dec 10, 2019
bb805ed
Feature 🚀 : Ability to edit messages
sarthology Dec 16, 2019
481f0db
Test Cases📝 : Specs for Edit message added
sarthology Dec 16, 2019
1b4275b
Merge pull request #2 from SkynoxTech/feature/ability_to_delete_and_e…
sarthology Dec 16, 2019
1421c0f
Merge remote-tracking branch 'upstream/master'
sarthology Dec 19, 2019
71c6582
Merge remote-tracking branch 'upstream/master'
sarthology Dec 21, 2019
a67f57c
Merge remote-tracking branch 'origin/master'
sarthology Dec 21, 2019
7a23050
Merge conflict handled
sarthology Dec 25, 2019
e2ba1b4
Merge remote-tracking branch 'upstream/master'
sarthology Dec 25, 2019
ef7d1f8
merge conflicts handled
sarthology Jan 12, 2020
b8d4599
Merge branch 'master' of github.com:thepracticaldev/dev.to
sarthology Jan 18, 2020
8f1e9fe
Merge remote-tracking branch 'upstream/master'
sarthology Jan 21, 2020
fb32bbb
Merge branch 'master' of github.com:thepracticaldev/dev.to
sarthology Jan 27, 2020
eebd53c
Merge remote-tracking branch 'upstream/master'
sarthology Feb 2, 2020
bf4cc32
Merge remote-tracking branch 'upstream/master'
sarthology Mar 3, 2020
56bf806
unfurl medium blogs with preview
Parasgr7 Mar 13, 2020
ed99d68
condition fix
Parasgr7 Mar 13, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ gem "uglifier", "~> 4.2" # Uglifier minifies JavaScript files
gem "ulid", "~> 1.2" # Universally Unique Lexicographically Sortable Identifier implementation for Ruby
gem "validate_url", "~> 1.0" # Library for validating urls in Rails
gem "webpacker", "~> 3.5" # Use webpack to manage app-like JavaScript modules in Rails
gem "opengraph_parser" #Using opengraph_parser to parse metadata from websites.

group :development do
gem "better_errors", "~> 2.6" # Provides a better error page for Rails and other Rack apps
Expand Down
6 changes: 5 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,9 @@ GEM
omniauth-twitter (1.4.0)
omniauth-oauth (~> 1.1)
rack
opengraph_parser (0.2.3)
addressable
nokogiri
orm_adapter (0.5.0)
os (1.0.1)
parallel (1.19.1)
Expand Down Expand Up @@ -921,6 +924,7 @@ DEPENDENCIES
omniauth (~> 1.9)
omniauth-github (~> 1.3)
omniauth-twitter (~> 1.4)
opengraph_parser
parallel_tests (~> 2.31)
pg (~> 1.2)
pry (~> 0.12)
Expand Down Expand Up @@ -994,4 +998,4 @@ RUBY VERSION
ruby 2.6.5p114

BUNDLED WITH
2.0.2
2.1.4
40 changes: 32 additions & 8 deletions app/models/message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,23 @@ def append_rich_links(html)
doc = Nokogiri::HTML(html)
doc.css("a").each do |anchor|
if (article = rich_link_article(anchor))
html += "<a href='#{article.current_state_path}'
class='chatchannels__richlink'
target='_blank' data-content='sidecar-article'>
#{"<div class='chatchannels__richlinkmainimage' style='background-image:url(" + cl_path(article.main_image) + ")' data-content='sidecar-article' ></div>" if article.main_image.present?}
<h1 data-content='sidecar-article'>#{article.title}</h1>
<h4 data-content='sidecar-article'><img src='#{ProfileImage.new(article.cached_user).get(width: 90)}' /> #{article.cached_user.name}・#{article.readable_publish_date || 'Draft Post'}</h4>
</a>".html_safe
if article.class == Hash
html += "<a href='#{article[:url]}'
class='chatchannels__richlink'
target='_blank' data-content='sidecar-article'>
#{"<div class='chatchannels__richlinkmainimage' style='background-image:url(#{article[:image]})' data-content='sidecar-article' ></div>" if article[:image].present?}
<h1 data-content='sidecar-article'>#{article[:title]}</h1>
<h4 data-content='sidecar-article'>#{article[:description]}</h4>
</a>".html_safe
else
html += "<a href='#{article.current_state_path}'
class='chatchannels__richlink'
target='_blank' data-content='sidecar-article'>
#{"<div class='chatchannels__richlinkmainimage' style='background-image:url(" + cl_path(article.main_image) + ")' data-content='sidecar-article' ></div>" if article.main_image.present?}
<h1 data-content='sidecar-article'>#{article.title}</h1>
<h4 data-content='sidecar-article'><img src='#{ProfileImage.new(article.cached_user).get(width: 90)}' /> #{article.cached_user.name}・#{article.readable_publish_date || 'Draft Post'}</h4>
</a>".html_safe
end
elsif (tag = rich_link_tag(anchor))
html += "<a href='/t/#{tag.name}'
class='chatchannels__richlink'
Expand Down Expand Up @@ -152,7 +162,21 @@ def channel_permission
end

def rich_link_article(link)
Article.find_by(slug: link["href"].split("/")[4].split("?")[0]) if link["href"].include?("//#{ApplicationConfig['APP_DOMAIN']}/") && link["href"].split("/")[4]
website = OpenGraph.new(link["href"]).metadata
if website.present?
if website[:site_name][0][:_value] == "Medium"
{
title: website[:title][0][:_value],
description: website[:description][0][:_value],
image: !website[:image].nil? ? website[:image][0][:_value]: "",
url: link[:href],
type: website[:type][0][:_value],
site_name: website[:site_name][0][:_value]
}
elsif website[:site_name][0][:_value] == "The DEV Community"
Article.find_by(slug: link["href"].split("/")[4].split("?")[0]) if link["href"].include?("//#{ApplicationConfig['APP_DOMAIN']}/") && link["href"].split("/")[4]
end
end
end

def rich_link_tag(link)
Expand Down