هذا المشروع مستوحى من r/Place. إنها لوحة قماشية مشتركة عبر الإنترنت حيث يمكنك رسم وحدات بكسل فردية.
المشروع موجود على الإنترنت على pl.g7kk.com.
تحتاج إلى ترجمة place.go باستخدام برنامج التحويل البرمجي Go.
تشغيل go build
:
cd ./place
go build cmd/place/place.go
بدلاً من ذلك، استخدم go install
:
cd ./place
go install cmd/place/place.go
قم بتشغيل place وقم بتعيين الوسيطة -root على موقع دليل الويب/الجذر. يمكنك أيضًا تكوين إعدادات أخرى عند تشغيله (انظر أدناه).
place -root web/root -port :8080
-سلسلة الجذر
الدليل مع ملفات الويب. (الافتراضي "./الجذر")
-عدد كثافة العمليات
الحد الأقصى لعدد الاتصالات. (الافتراضي 64)
-العرض كثافة العمليات
العرض المطلوب إنشاء اللوحة القماشية. (الافتراضي 1024)
-ارتفاع كثافة العمليات
الارتفاع اللازم لإنشاء اللوحة القماشية. (الافتراضي 1024)
-سلسلة التحميل
ملف png ليتم تحميله كلوحة قماشية. (إذا لم يتم ضبطه فإنه ينشئ لوحة قماشية فارغة)
-حفظ السلسلة
اسم لحفظ اللوحة القماشية. (افتراضي "./place.png")
-سلسلة السجل
ملف السجل المراد الكتابة إليه. (إذا لم يتم تعيينه فسيتم تسجيل الدخول إلى سطر الأوامر)
-سلسلة المنفذ
المنفذ الذي يستمع إليه الخادم. (الافتراضي ":8080")
-الفاصل الزمني كثافة العمليات
حفظ الفاصل الزمني في ثوان. (الافتراضي 180)
-wl (بدون قيمة) لتمكين القائمة البيضاء
- سلسلة القائمة البيضاء المسار إلى القائمة البيضاء. (الافتراضي "whitelist.csv")
-loadRecord string مسار صورة السجل المراد تحميلها. (إنشاء سجل فارغ إذا لم يتم تعيينه)
-saveRecord مسار السلسلة لحفظ صورة السجل فيه. (الافتراضي "record.png")
يمكنك اختياريًا إضافة قائمة بيضاء. عند تمكين القائمة البيضاء، لن يتمكن سوى المستخدمين الذين لديهم مفتاح من الرسم على اللوحة. سيحتفظ الخادم أيضًا بسجل لمن قام بوضع كل بكسل.
لاستخدام القائمة البيضاء، قم أولاً بإنشاء مستند CSV. سيكون لكل مستخدم مفتاح شخصي ومعرف يحدد هويته في السجل. يجب أن يكون المفتاح عبارة عن سلسلة طويلة ويجب أن يكون المعرف عددًا صحيحًا في النطاق [1,65535].
أوصي باستخدام uuids للمفاتيح. على سبيل المثال:
2237701c-7558-4424-95e1-beee4f6a406a,1
f9e41cf2-0e5d-43f2-bffd-5e2f1aab0a3b,2
4917ba68-41be-4956-93a7-0563257ff182,3
79df0674-f6d5-4556-baad-992e81f72bb2,65535
تتوافق ألوان البكسل الموجودة في صورة السجل مع المعرف الموجود في القائمة البيضاء.
عندما تقوم بتمكين القائمة البيضاء باستخدام الوسيطة -wl، فسوف تبحث عن ملف يسمى "whitelist.csv" في دليل العمل. ولكن يمكنك تحديد المسار الخاص بك أيضًا:
place -wl -whitelist my_white_list.csv
يمكنك أيضًا تحميل صورة سجل موجودة باستخدام -loadRecord، والذي يشبه -load لتحميل اللوحة القماشية
place -load place.png -wl -loadRecord record.csv
إذا لم تقم بتضمين الوسيطة -wl، فسيتم تجاهل القائمة البيضاء والسجل.
أوصي بإعداد بعض البرامج النصية لإعادة تشغيل الخادم أو استعادة اللوحة القماشية بسهولة.
يقوم هذا البرنامج النصي بقتل الخادم وإعادة تشغيله باستخدام اللوحة القماشية القديمة. هذا لا يؤدي إلى إعادة ضبط اللوحة القماشية.
لقد قمت بإعداد هذا البرنامج النصي على الخادم الخاص بي كمهمة cron ليتم تشغيله ليلاً لإزالة أي اتصالات websocket العالقة.
cd ~ /go/src/place/web
pkill place
~ /go/bin/place -port :80 -load place.png & > place.log &
يقوم هذا البرنامج النصي بإرجاع اللوحة القماشية إلى صورة محفوظة مسبقًا.
cd ~ /go/src/place/web
pkill place
cp place_rollback.png place.png
~ /go/bin/place -port :80 -load place.png & > place.log &