Skip to content

Latest commit

 

History

History
85 lines (59 loc) · 4.02 KB

File metadata and controls

85 lines (59 loc) · 4.02 KB

استخراج اطلاعات از سابقه مشهدلاگ

این پروژه سعی داره تا حد امکان از گذشته مشهدلاگ اطلاعات در بیاره و در قالب json line این اطلاعات رو استخراج کنه. بعد از اون اطلاعات پردازش میشن و با استفاده داده های پردازش شده می‌توان رزومه مشهدلاگ، وبسایت مشهدلاگ، آمار آنچه اتفاق افتاده و هر چیزی که نیاز به سوابق لاگ داره رو بهتر کرد و به نمایش گذاشت.

این پروژه به اعتماد و برندینگ مشهدلاگ قراره کمک کنه و به حامی ها کمک کنه تا ارزش واقعی مشهدلاگ رو متوجه بشن. همچنین کاربران مشهدلاگ هم ممکنه از دیدن این آمار ها لذت ببرن.

از هرگونه مشارکت در این پروژه استقبال خواهد شد.

نیازمندی ها

  • python3
  • fzf
  • jq

اماده سازی پروژه

python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
nano .env
export $(grep -v '#' .env | xargs)

exporter_telegram.py

این اسکریپت تمام پیام های تلگرام رو با فرمت json line استخراج میکنه و خروجیش رو میشه ریخت تو فایل و با ابزار های دیگه پردازشش کرد.

filter_events.py

این اسکریپت پیام های گرفته شده از مشهدلاگ رو سعی میکنه یکم فیلتر کنه و مرتب تر کنه ساختارشون رو تا راحت تر بشه باهاشون کار کرد.

لیست جداول و نمودار هایی که باید باشن

  • نمودار تعداد جلسات برگزار شده در هر سال
  • موضوعات ارائه شده به صورت کلی
  • اقشار مختلف مخاطب هامون
  • اقشار مختلف ارائه دهنده هامون
  • نموداری از حامیان با دسته بندی شون. مثلا اکادمیک، دولتی، شرکت، بیزنس های کوچک، کافی شاپ ها، سازمان های غیر انتفاعی

لیست اطلاعاتی که لازم داریم

فعلا فقط داده جلسات رو لازم داریم و قراره که غیر از جلسات چیزی بهمون نده.

از همون داده جلسات نیاز به خروجی json line جدید داریم که هر خط موارد زیر رو داشته باشه:

  • تاریخ جلسه
  • موضوعات جلسه
  • ارائه دهنده ها
  • اسپانسر ها
  • ادرس
  • شماره جلسه

استفاده از دستورات

فیلتر کردن جلسات و استخراج داده از تمام پیام های موجود:

grep -e "جلسه" -e "نشست" bucket/telegram-channel.jsonl |
    ./filter_events.py >> bucket/events-insight.jsonl 

دستور بالا قراره تمام اطلاعات لازم رو برای هر جلسه موجود بهمون بده که بعد با یک سری اسکریپت ساده نمودار و جداول مورد نیاز مون رو درست کنیم.

اسکریپت ها

میتوانید از اسکریپت های نوشته شده با bash استفاده کنید تا داده ها را تمیز تر کنید. اسکریپت json-lug-sanitizer.sh قراره بر اساس یک سری الگو داده های پرت رو پاک کنه.

اسکریپت json-remover.sh با استفاده از fzf قراره مقادیر رو نشون بده و بعد با انتخاب کردن مقادیر غلط و بدردنخور و فشردن اینتر اون داده ها حذف میشن. برای اینکه چند مقدار رو باهم انتخاب کنید میتونید دکمه شیفت و تب رو بزنید تا انتخاب بشه.

اسکریپت extract-data.sh داده های موردنیاز رو برامون لیست میکنه تا بتونیم راحت تر ازشون استفاده کنیم.